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

Node.js NodeJS dotenv-未正确读取字符串值,node.js,Node.js,我试图在nodeJS中使用dotenv()来存储我正在使用的oauth服务器的客户机机密值 我的.env文件如下所示: passport.use(new PasswordGrantStrategy({ tokenURL: 'WEBSITE_ADDRESS', clientID: "2", clientSecret: process.env.clientSecret, grantType: "password", }, passport.use(new Pass

我试图在nodeJS中使用
dotenv
()来存储我正在使用的oauth服务器的客户机机密值

我的
.env
文件如下所示:

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

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

},
clientSecret=imu86a3opizlyohzybshrap377ers0movabaizeq

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

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

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

},
问题是我得到了一个
令牌错误
,但是,如果我将其更改为以下内容:

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

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

},
这样就完全可以了。我不明白问题出在哪里,我试着把它当作一根绳子,但没有这样的运气


两个值都匹配,我正在打印它们,它们都相同。

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

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

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

使用回溯来包装字符串值,您的生活将是轻而易举的

clientSecret=`imU86A3oPiZlyOhZybShraP377ers0MvowBaizEQ`

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

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

如何加载.env文件?以及如何启动脚本?您可以控制台。在passport上面记录它。使用line并查看它所包含的值是多少。process.env.clientSecret的值是多少?我发现在我的环境中唯一有效的东西。干杯