Node.JS环境变量没有设置?

时间:2015-12-15 07:35:26

标签: javascript node.js auth0

我的Node.JS .env中有一些环境变量,包括AUTH0_CLIENT_ID和AUTH0_CLIENT_SECRET。

我使用以下命令向客户端添加了auth0支持:

var jwt = require('express-jwt');
var authenticate = jwt({
  secret: new Buffer(process.env.AUTH0_CLIENT_SECRET, 'base64'),
  audience: process.env.AUTH0_CLIENT_ID
});

当使用$ node experiment.js或从npm运行我的实验时[在将相应的条目添加到package.json中的脚本之后,我收到错误:

buffer.js:139
throw new TypeError('must start with number, buffer, array or string');

我的猜测是环境变量没有被提升。我做错了什么,或者/我应该检查什么?

1 个答案:

答案 0 :(得分:0)

将这些放在文件中的事实并不意味着它们会被加载。您需要将它们传递给NodeJS。使用一些软件包来管理配置文件和环境变量(nconfdotenv),或者在运行服务时直接传递它(这更好,因为秘密出于安全原因,请保存在任何类型的文件中。如果您选择第二个,它几乎取决于您正在运行的系统。如果使用Windows,则应首先设置环境变量(cmd):

set AUTH0_CLIENT_SECRET=test
node app.js

在基于Unix的系统上,您可以直接传递它:

AUTH0_CLIENT_SECRET=test node app.js

希望有所帮助:)