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

gop*_*lay 3 node.js express dotenv

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

这是app.ts

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

这是我的.env文件:

MAIN_DB_PATH=./data/database.db
UPLOAD_MULTER_DIR=./module/car/uploads
Run Code Online (Sandbox Code Playgroud)

我的文件夹结构是

在此输入图像描述

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

Zav*_*ael 6

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

const result = dotenv.config()

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

console.log(result.parsed)
Run Code Online (Sandbox Code Playgroud)

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


Đăn*_*inh 6

要在不同的目录中加载 .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);
Run Code Online (Sandbox Code Playgroud)