11

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

更新

.env

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

包.json

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

应用程序.js

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

4 回答 4

11

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

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

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

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

MONGO_ATLAS_PW=xxxxx
JWT_KEY=secret_this_should_be_longer

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

require('dotenv').config()
于 2019-06-29T22:53:42.503 回答
8

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

MONGO_ATLAS_PW=xxxxx
JWT_KEY=secret_this_should_be_longer

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

require("dotenv").config();

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

于 2019-06-29T23:20:06.743 回答
4

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

nodemon.json

{
  "env": {
    "MONGO_ATLAS_PW": "xxxx",
    "JWT_KEY": "secret_this_should_be_longer"
  }
}
于 2019-06-30T17:31:25.763 回答
1

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 -在根目录中创建一个名为nodemon.json的新文件

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

重新启动服务器

用于访问变量

process.env.MONGO_ATLAS_PW 
process.env.JWT_KEY
于 2021-06-29T09:35:56.083 回答