NodeJS 环境变量未定义

NodeJS environment variables undefined

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

已更新

.env

MONGO_ATLAS_PW = "xxxx";
JWT_KEY = "secret_this_should_be_longer";

package.json

...
  "scripts": {
    ...
    "start:server": "nodemon ./server/server.js"
  }

app.js

 require('dotenv').config();
 ...
 console.log(process.env.JWT_KEY); //undefined 

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

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

首先,使用命令npm install dotenv

安装dotenv

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

MONGO_ATLAS_PW=xxxxx
JWT_KEY=secret_this_should_be_longer

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

require('dotenv').config()

我相信你指的是 dotenv package。要配置它,首先创建一个名为 .env 的文件,其中存储的键和值如下所示:

MONGO_ATLAS_PW=xxxxx
JWT_KEY=secret_this_should_be_longer

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

require("dotenv").config();

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

这需要在我的项目的根目录中。

nodemon.json

{
  "env": {
    "MONGO_ATLAS_PW": "xxxx",
    "JWT_KEY": "secret_this_should_be_longer"
  }
}

env 变量不包含尾随空格并且还删除了引号

MONGO_ATLAS_PW = "xxxx"; 
JWT_KEY = "secret_this_should_be_longer";

MONGO_ATLAS_PW=xxxx 
JWT_KEY=secret_this_should_be_longer

重新启动服务器

或者您也可以尝试使用 nodemon.json - 在您的 根目录 [=31] 中创建一个名为 nodemon.json 的新文件=]

{
    "env": {
        "MONGO_ATLAS_PW" : "xxxx",
        "JWT_KEY" : "secret_this_should_be_longer"
    }
}

重新启动服务器

用于访问变量

process.env.MONGO_ATLAS_PW 
process.env.JWT_KEY