Dotenv 没有加载具有正确路径的环境变量

Dotenv not loading env variables with correct path

我正在使用 dotenv 库,但是我的环境变量 returns 未定义

// app.ts

  require('dotenv').config({path: '/.env'});
  console.log(process.env.MAIN_DB_PATH) // returns undefined

//.env

MAIN_DB_PATH=./data/database.db
UPLOAD_MULTER_DIR=./module/car/uploads

我的文件夹结构是

所以它应该可以正常工作:(

如果 .env 文件位于根目录,则不需要路径,但您可以从配置方法定义一个 return 值并检查是否发生错误

const result = dotenv.config()

if (result.error) {
  throw result.error
}

console.log(result.parsed)

来源:https://www.npmjs.com/package/dotenv 配置

要加载不同目录中的 .env 文件,您需要提供该文件的绝对路径。

  • __dirname : 需要加载 .env 文件的文件所在目录的绝对路径(本例中为app.ts)
  • ..:升一级

然后path.resolve会给你.env文件的绝对路径

const path = require('path');
require("dotenv").config({ path: path.resolve(__dirname, '..', '.env') });
console.log(process.env.MAIN_DB_PATH);