【问题标题】:Retrieve Azure environment variables in NodeJs在 NodeJs 中检索 Azure 环境变量
【发布时间】:2020-09-09 06:04:35
【问题描述】:

我在 Azure 中设置了一个应用服务,其中包含一个静态构建的 NodeJS Web 应用程序。应用程序运行良好,我想将 api 的 api 密钥和主机名移动到环境中的变量中。

在 Azure->Settings->Configuration->Application Settings 我添加了两个环境变量并为每个设置了一个值。

在我的 Constants.js 文件中

export const token = process.env.API_KEY;
export const host = process.env.API_HOST;

但 process.env.API_KEY 始终为空。

我什至尝试过:

export const token = process.env["API_KEY"];

无济于事。我做错了什么?

【问题讨论】:

  • 该代码是在服务器端还是在浏览器中执行?
  • 我想它是浏览器,现在我想起来了。我还没有创建网站我只是做了后端并将网站部署到 Azure。

标签: node.js azure


【解决方案1】:

你提供的两个代码都对我有用。

export const token = process.env.API_KEY;
export const token = process.env["API_KEY"];

尝试重新部署您的网站并在其他浏览器中查看。

更新:

const http = require('http');

//var APPINSIGHTS_INSTRUMENTATIONKEY= process.env.APPINSIGHTS_INSTRUMENTATIONKEY;

const server = http.createServer((request, response) => {
    var a,b,c;
    if(process.env.NODE_ENV === "production")
    {
        a= process.env.NODE_ENV ;
        b= process.env.APPINSIGHTS_INSTRUMENTATIONKEY;
        c= process.env.KEY_VALUE;
    }
    else if(process.env.NODE_ENV === "development")
    {
        a="Welcome";
        b="testparams";
        c="testvalue";
    }
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.end(a+"  && "+b+"myCustomKey="+c);
});

const port = process.env.PORT || 1337;
server.listen(port);

console.log("Server running at http://localhost:%d", port);

【讨论】:

  • 我每次进行更改时都会重新部署,但它不起作用。我不明白。不适用于任何浏览器。
  • 这是我的 process.env 控制台日志``` {NODE_ENV: "production", PUBLIC_URL: "", WDS_SOCKET_HOST: undefined, WDS_SOCKET_PATH: undefined, WDS_SOCKET_PORT: undefined} NODE_ENV: "production" PUBLIC_URL :“”WDS_SOCKET_HOST:未定义WDS_SOCKET_PATH:未定义WDS_SOCKET_PORT:未定义```
  • 我认为部分问题是我的包含变量的 Constants.js 文件没有在服务器端运行。我尝试添加 但我现在得到的只是 %PUBLIC_URL% 在我的 GET 请求中和一个 404。
  • 谢谢,不幸的是我不能让它工作,因为它抱怨 createServer() 不是一种方法。当然,我已经安装了依赖项。我认为问题在于这是一个静态站点。我尝试使用 dotnet 即时创建 process.env,但它也不起作用。
【解决方案2】:

我遇到了同样的问题并且有相同的环境变量(作者在后续回答中提到)显示然后最终发现 create-react-app 使用的脚本专门公开了这些变量以及任何以 @987654321 开头的变量@。

我调整了逻辑以允许其他环境变量通过,或者您可以重命名变量以使用上述前缀。

【讨论】:

    猜你喜欢
    • 2020-01-23
    • 2017-05-10
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    • 2013-03-11
    相关资源
    最近更新 更多