设置要检索的节点的环境变量

 爱恨情仇4131_120 发布于 2023-01-18 19:29

我正在尝试按照教程说它:

"有几种方法可以加载凭据.

    从环境变量加载,

    从磁盘上的JSON文件加载,

密钥需要如下:

USER_ID, USER_KEY

...这意味着如果您正确设置环境变量,则根本不需要在应用程序中管理凭据."

基于一些谷歌搜索,似乎我需要设置变量process.env?我如何以及在何处设置这些凭据?示例请.

9 个回答
  • 只需在命令行上提供env值

    USER_ID='abc' USER_KEY='def' node app.js
    

    2023-01-18 19:29 回答
  • 环境变量(在本例中)用于将凭据传递给您的应用程序.USER_ID并且USER_KEY可以分别从process.env.USER_ID和访问process.env.USER_KEY.您无需编辑它们,只需访问其内容即可.

    看起来他们只是给你的加载之间的选择USER_ID,并USER_KEY从任一process.env或磁盘上的一些specificed文件.

    现在,当您运行应用程序时,会发生魔力.

    USER_ID=239482 USER_KEY=foobar node app.js

    这将传递用户ID 239482和用户密钥为foobar.这适用于测试,但是对于生产,您可能会配置一些bash脚本来导出变量.

    2023-01-18 19:29 回答
  • 您可以通过进程全局变量设置环境变量,如下所示:

    process.env['NODE_ENV'] = 'production';
    

    适用于所有平台.

    2023-01-18 19:30 回答
  • 如果您需要管理选项,请尝试使用envs npm包.如果已设置,则返回环境值.否则,您可以指定存储在全局默认对象变量中的默认值(如果它不在您的环境中).

    使用.env("dot ee-en-vee")或环境文件有很多原因.个人可以管理他们自己的配置.您可以使用自己的环境设置将不同的环境(dev,stage,prod)部署到云服务.你可以设置合理的默认值.

    .env文件中,每一行都是一个条目,如下例所示:

    NODE_ENV=development
    API_URL=http://api.domain.com
    TRANSLATION_API_URL=/translations/
    GA_UA=987654321-0
    NEW_RELIC_KEY=hi-mom
    SOME_TOKEN=asdfasdfasdf
    SOME_OTHER_TOKEN=zxcvzxcvzxcv
    

    你应该包括.env在版本控制库(它添加到您的.gitignore文件).

    要从.env文件中获取变量到您的环境中,您可以export NODE_ENV=development在启动应用程序之前使用bash脚本执行相应的操作.

    #!/bin/bash
    while read line; do export "$line";
    done <source .env
    

    然后这将在您的应用程序javascript:

    var envs = require('envs');
    
    // If NODE_ENV is not set, 
    // then this application will assume it's prod by default.
    app.set('environment', envs('NODE_ENV', 'production')); 
    
    // Usage examples:
    app.set('ga_account', envs('GA_UA'));
    app.set('nr_browser_key', envs('NEW_RELIC_BROWSER_KEY'));
    app.set('other', envs('SOME_OTHER_TOKEN));
    

    2023-01-18 19:30 回答
  • 我强烈建议您查看dotenv包.

    https://github.com/motdotla/dotenv

    它类似于@Benxamin在答案中建议的库,但它更清晰,不需要任何bash脚本.另外值得注意的是,代码库很受欢迎且维护良好.

    基本上你需要一个.env文件(我强烈建议你从你的git/mercurial/etc中忽略它):

    FOO=bar
    BAZ=bob
    

    然后在您的应用程序条目文件中尽早放入以下行:

    require('dotenv').config();
    

    繁荣.完成.'process.env'现在将包含上面的变量:

    console.log(process.env.FOO);
    // bar
    

    '.env'文件不是必需的,因此您无需担心您的应用程序在不存在时会丢失.

    2023-01-18 19:30 回答
  • 就像ctrlplusb所说的那样,我建议您使用package dotenv,但是另一种方法是创建一个js文件,并在应用服务器的第一行中要求它。

    env.js:

    process.env.VAR1="Some value"
    process.env.VAR2="Another Value"
    

    app.js:

    require('env')
    console.log(process.env.VAR1) // Some value
    

    2023-01-18 19:30 回答
  • 步骤1:将环境变量添加到其相应文件中。例如,您的暂存环境可以称为.env.staging,其中包含特定于暂存环境的环境变量USER_IDUSER_KEY

    步骤2:package.json文件中,添加以下内容:

    "scripts": {
      "build": "sh -ac '. ./.env.${REACT_APP_ENV}; react-scripts build'",
      "build:staging": "REACT_APP_ENV=staging npm run build",
      "build:production": "REACT_APP_ENV=production npm run build",
      ...
    }
    

    然后像这样在您的部署脚本中调用它:

    npm run build:staging
    

    超级简单的设置,就像魅力!

    资料来源: https : //medium.com/@tacomanator/environments-with-create-react-app-7b645312c09d

    2023-01-18 19:30 回答
  • 这取决于您的操作系统和shell

    带有shell bash的linux上,你可以创建这样的环境变量(在控制台中):

    export FOO=bar
    

    有关ubuntu上的环境变量的更多信息(例如):

    ubuntu上的环境变量

    2023-01-18 19:30 回答
  • 对于Windows用户,此Stack Overflow问题和最佳答案对于如何通过命令行设置环境变量非常有用。

    如何在Windows中设置NODE_ENV = production?

    2023-01-18 19:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有