Javascript 将.env常量传递到内部目录
我的ConfigKnex.ts文件如下所示Javascript 将.env常量传递到内部目录,javascript,typescript,environment-variables,knex.js,Javascript,Typescript,Environment Variables,Knex.js,我的ConfigKnex.ts文件如下所示 require("ts-node/register"); import { config } from "dotenv"; config(); const { DATABASE_URL } = process.env; console.log({ DATABASE_URL }); export const development = { client: "postgresql",
require("ts-node/register");
import { config } from "dotenv";
config();
const { DATABASE_URL } = process.env;
console.log({ DATABASE_URL });
export const development = {
client: "postgresql",
connection: DATABASE_URL,
};
server
- lib
-- somefiles.js
- package.json
- .env
我的文件目录看起来像
require("ts-node/register");
import { config } from "dotenv";
config();
const { DATABASE_URL } = process.env;
console.log({ DATABASE_URL });
export const development = {
client: "postgresql",
connection: DATABASE_URL,
};
server
- lib
-- somefiles.js
- package.json
- .env
如果我运行“db:seed”:“npx knex--knexfile./ConfigKnex.ts seed:run”
,它会工作
如果我将ConfigKnex移动到lib文件夹下并运行“db:seed”:“npx-knex-knexfile./lib/ConfigKnex.ts seed:run”
,它不会运行。在进一步调试之后,我注意到如果我移动ConfigKnex,数据库的URL
是未定义的
如果.env是本地的,为什么ConfigKnex只能获取.env?有没有一种方法可以在没有中间文件的情况下将.env常量传递给ConfigKnex?您可以传递到dotenv.config()的路径。节点的
路径
模块可以解决您的问题并规范路径。大概是这样的:
从“路径”导入路径;
从“dotenv”导入{config};
配置({
path:path.resolve(uu dirname,“…”,“.env”),//根据需要调整路径
})