2016-11-29 55 views
0
module.exports = { 
    app_uri: 'http://localhost:3000', 
    redirect_uri: '/redirect', 

id: 'user1', 
secret: "client_secretValue", 
    ... 
}; 

我已经继承了上面的代码。我想改变从环境变量中读取的“秘密”。我已经将它存储在LOCAL_SECRET中,并且可以通过process.env.LOCAL_SECRET成功访问它。在节点JS中将键值对的值更改为环境变量

什么是正确的方法将它添加到上面的值对?将其更改为secret:env.process.LOCAL_SECRET不起作用,我不知道为什么。

回答

2

我会用eit她的dotenvcross-env

cross-env如果您通过npm或某些bash脚本运行脚本,情况相当不错。

"start": "cross-env SECRET=secret && npm run server" 

dot-evn适合好得多,如果你喜欢的配置文件

  1. 在你的根

    SECRET=secret

  2. 在你的第一个脚本调用创建一个.ENV文件的办法,在任何使用您的SECRET密钥的模块之前

    require('dotenv').config();

  3. dotenv会在您的env变量中混合您的.env内容。

    module.exports = { 
    app_uri: 'http://localhost:3000', 
        redirect_uri: '/redirect', 
        id: 'user1', 
    secret: process.env.SECRET, 
    ... 
    }; 
    
1

你可以做到这一点

module.exports = { 
    app_uri: 'http://localhost:3000', 
    redirect_uri: '/redirect', 

    id: 'user1', 
    secret: process.env.LOCAL_SECRET || "client_secretValue", 
    ... 
}; 

或使用dotenv节点模块(https://www.npmjs.com/package/dotenv

可以有创建.ENV文件(项目root)并增加环境变量和使用它在

module.exports = { 
    app_uri: 'http://localhost:3000', 
    redirect_uri: '/redirect', 

    id: 'user1', 
    secret: process.env.LOCAL_SECRET, 
    ... 
}; 
+0

检出dotenv现在...第一个选项不起作用,我收到“未处理的事件” –

+0

您之前是否调用了require('dotenv').config();'? –