Node.js:如何从系统中读取变量?

Posted

技术标签:

【中文标题】Node.js:如何从系统中读取变量?【英文标题】:Node.js: How to read variables from the system? 【发布时间】:2022-01-14 12:23:02 【问题描述】:

我是 Docker 的新手,要在生产环境中进行部署,我需要从容器的操作系统中读取“环境”变量而不是文件或 package.json 脚本行。

我知道如何从 .env 文件或脚本行中读取变量,但我不知道如何从系统中读取,也不知道是否可以从系统中读取这些变量。

我该怎么做?有可能吗?

【问题讨论】:

【参考方案1】:

过程不会改变。您仍然使用以下内容来读取进程正在运行的环境变量。Reference for Node.

const envVariable = process.env.NAME_OF_VARIABLE;

可以使用以下方法在 Dockerfile 中设置变量。这方面的文档是here.

ENV <key>=<value> ...

不过,当使用 LXC 或 Kubernetes 之类的东西时,事情会变得更加复杂。

【讨论】:

伯杰你好!!!谢谢你的帮助。但是检查文档,您将变量的值写入 Docker 文件中,而对我的要求是从系统而不是任何文件中读取变量。例如,如果你在 Linux 中编写 echo $HOME,我得到了变量 $HOME 的值。我需要做的是相同的,但来自节点。我可以使用 process.env.HOME 从 Node 系统中读取 $HOME 变量吗? @JoséCarlos 你试过了吗? (这是一个反问的问题......)=> docker -it --rm --name testnode --env toto=blabla node:latest。在节点控制台中尝试读取process.env.toto(在我的命令启动时在容器上设置)和process.env.HOMEprocess.env.HOSTNAME(由“系统”设置)。你得到了所有人的结果。 我会试试的!!谢谢!!! @JackBarger 它有效!!!感谢您的感谢帮助!!!

以上是关于Node.js:如何从系统中读取变量?的主要内容,如果未能解决你的问题,请参考以下文章

Node.js log4j-like 日志系统

Node.js - 如何从文件中读取数据并将输出集成到变量中

带你从零学Node.js

你怎么得到运行Node.js脚本的cron作业从.env文件中读取变量?

我无法弄清楚如何防止在 Node.js 中出现此 CORS 错误 [重复]

什么 TypeScript 配置产生最接近 Node.js 14 功能的输出?