【问题标题】:Dotenv not loading env variables with correct pathDotenv 未使用正确的路径加载 env 变量
【发布时间】:2021-06-17 05:26:54
【问题描述】:

我正在使用 dotenv 库,但我的 env 变量返回未定义

// 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

我的文件夹结构是

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

【问题讨论】:

  • @Danizavtz 我试过了,但还是不行:/
  • @Danizavtz 也尝试过,但没有成功。我已经用过。在以前的其他项目中,所以我 99% 确定您可以使用它们

标签: node.js express dotenv


【解决方案1】:

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

const result = dotenv.config()

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

console.log(result.parsed)

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

【讨论】:

    【解决方案2】:

    要在不同的目录中加载 .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);
    

    【讨论】:

      猜你喜欢
      • 2017-07-06
      • 1970-01-01
      • 2018-06-05
      • 2019-04-24
      • 2020-03-13
      • 2021-10-14
      • 2020-04-14
      • 1970-01-01
      • 2020-10-05
      相关资源
      最近更新 更多