NodeJS 环境变量未定义

dev*_*ato 8 javascript json node.js nodejs-server

我正在尝试创建一些环境变量,但是当我创建文件并运行服务器时,似乎未定义。我正在使用nodemon. 我已经重新启动了我的服务器,但没有运气。

更新

.env

MONGO_ATLAS_PW = "xxxx";
JWT_KEY = "secret_this_should_be_longer";
Run Code Online (Sandbox Code Playgroud)

包.json

...
  "scripts": {
    ...
    "start:server": "nodemon ./server/server.js"
  }
Run Code Online (Sandbox Code Playgroud)

应用程序.js

 require('dotenv').config();
 ...
 console.log(process.env.JWT_KEY); //undefined 
Run Code Online (Sandbox Code Playgroud)

Kri*_*rke 10

我相信 nodemon.json 文件仅用于设置 nodemon 特定配置。如果您查看示例 nodemon.json 文件nodemon 文档,他们提到的唯一环境变量设置是 NODE_ENV。

您是否考虑过将应用程序的这些环境变量放在 .env 文件中?有一个名为dotenv的包,它有助于管理 Node 中的 env 变量。

首先,使用命令安装 dotenv npm install dotenv

然后,.env在根目录中创建一个名为的文件,内容如下:

MONGO_ATLAS_PW=xxxxx
JWT_KEY=secret_this_should_be_longer
Run Code Online (Sandbox Code Playgroud)

最后,在app.js导入后的文件中添加以下行:

require('dotenv').config()
Run Code Online (Sandbox Code Playgroud)


Jac*_*ord 7

我相信您指的是dotenv 包。要配置它,首先创建一个文件,.env其中包含您的键和值,如下所示:

MONGO_ATLAS_PW=xxxxx
JWT_KEY=secret_this_should_be_longer
Run Code Online (Sandbox Code Playgroud)

然后,在您的 中server.js,在顶部附近添加:

require("dotenv").config();
Run Code Online (Sandbox Code Playgroud)

然后该process.env变量将是一个包含 中值的对象.env


dev*_*ato 5

这需要位于我的项目的根目录中。

Nodemon.json

{
  "env": {
    "MONGO_ATLAS_PW": "xxxx",
    "JWT_KEY": "secret_this_should_be_longer"
  }
}
Run Code Online (Sandbox Code Playgroud)