NodeJS dotenv - 未正确读取字符串值

时间:2017-03-13 11:57:19

标签: node.js

我正在尝试使用nodeJS中的dotenvhttps://github.com/motdotla/dotenv)来存储我正在使用的oauth服务器的客户端密码值。

我的.env文件如下所示:

clientSecret=imU86A3oPiZlyOhZybShraP377ers0MvowBaizEQ

在NodeJS文件中,我有以下内容:

passport.use(new PasswordGrantStrategy({
    tokenURL: 'WEBSITE_ADDRESS',
    clientID: "2",
    clientSecret: process.env.clientSecret,
    grantType: "password",

},

问题是我得到了Token Error但是,如果我更改了以下内容:

passport.use(new PasswordGrantStrategy({
    tokenURL: 'WEBSITE_ADDRESS',
    clientID: "2",
    clientSecret: "imU86A3oPiZlyOhZybShraP377ers0MvowBaizEQ",
    grantType: "password",

},

然后这完全正常。我不明白问题是什么,我试图把它作为一个字符串,但没有运气。

这两个值都是匹配的,我将它们打印出来并且它们都是相同的。

3 个答案:

答案 0 :(得分:1)

使用代字号来包装字符串值,您的生活将变得轻而易举! clientSecret=`imU86A3oPiZlyOhZybShraP377ers0MvowBaizEQ`

答案 1 :(得分:0)

确保已安装dotenv 确保您在应用中尽早配置 dotenv

require('dotenv').config({path: __dirname + '/.env'});

注意:最好在某些设置中使用 path 参数,例如,如果使用调试器,否则dotenv可能无法找到并加载.env文件。

答案 2 :(得分:0)

如果您需要在应用变量中动态设置环境值

 for(const [keyObj, valObj] of Object.entries(data)){
     for(const [key, value] of Object.entries(valObj)){
         app.set(key.toLocaleLowerCase(), value);
     }
 }