Node.js 如何在开发和生产中设置dotenv?

Node.js 如何在开发和生产中设置dotenv?,node.js,express,nodemon,dotenv,Node.js,Express,Nodemon,Dotenv,在我的expressjsapi服务器中,我尝试将dotenv与.env文件一起用于我的环境设置 我更喜欢在开发和生产环境中使用.env文件 我正在使用nodemon进行开发,目前如果我在package.json>启动脚本中包含-r dotenv/config: "scripts": { "start": "nodemon --exec babel-node -r dotenv/config index.js" } 变量在应用程序中的每个位置都能正确设置 但是,如

在我的expressjsapi服务器中,我尝试将dotenv与
.env
文件一起用于我的环境设置

我更喜欢在开发和生产环境中使用
.env
文件

我正在使用nodemon进行开发,目前如果我在package.json>启动脚本中包含
-r dotenv/config

    "scripts": {
        "start": "nodemon --exec babel-node -r dotenv/config index.js"
    }
变量在应用程序中的每个位置都能正确设置

但是,如果我使用脚本在
index.js
中配置dotenv,如下所示:

从“dotenv”导入dotenv
//环境变量
dotenv.config()
似乎
process.env
仅在index.js页面中配置,我无法在我的中间件逻辑中获取
process.env
变量?

在执行中间件之前,我在一开始就执行了
dotenv.config()

我的问题是:
1.我的逻辑使用的
dotenv.config()
设置是否不正确?为什么我的中间件无法获得相同的变量?
2.如何为开发和生产设置从
.env
文件读取的
process.env
变量?(我可以使用网页包打包我的生产版本)


感谢您的帮助。

dotenv.config()
行之前,您可能有其他
import
语句,这些模块将无法访问配置的环境变量

而不是

从“dotenv”导入dotenv
dotenv.config()
你可以用

import'dotenv/config'
或者使用以下命令启动应用程序,类似于开发环境的设置方式。如果您的传输输出位于
build
目录中:

node --require dotenv/config build/index.js
参考:


谢谢你的帮助!现在我将导入'dotenv/config'放在一切之前,在导入express和导入中间件之前,它工作得非常好。