NodeJS环境变量未定义

时间:2019-06-29 22:35:50

标签: javascript node.js json nodejs-server

我正在尝试创建一些环境变量,但是当我创建文件并运行服务器时,似乎未定义。我正在使用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 

4 个答案:

答案 0 :(得分:2)

我相信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()

答案 1 :(得分:2)

我相信您是指dotenv package。要对其进行配置,请首先创建一个名为.env的文件,其密钥和值的存储方式如下:

MONGO_ATLAS_PW=xxxxx
JWT_KEY=secret_this_should_be_longer

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

require("dotenv").config();

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

答案 2 :(得分: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

答案 3 :(得分:0)

该目录必须位于我项目的根目录中。

nodemon.json

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