使用NodeJS设置环境变量

问题描述 投票:0回答:1

我需要从Node设置一个环境变量(目前使用v8.9.3

理想情况下,我想在程序启动时运行export DATA_DIR=/var/lib/data

1.试图产生一个child_process来设置它,但它似乎不起作用。

例:

const { spawnSync } = require( 'child_process' );
spawnSync( 'export', [ 'DATA_DIR=/var/lib/data' ] );

但这导致ENOENT

Error: spawnSync export ENOENT...
code: 'ENOENT',
errno: 'ENOENT',
syscall: 'spawnSync export',
path: 'export',
spawnargs: [ 'DATA_DIR=/var/lib/data' ]

2.尝试设置process.env.DATA_DIR = '/var/lib/data',但这似乎是节点进程的本地,并且不被其他人识别。

3.尝试了npm模块:dotenvenvsenvironmentaltiny-envs,这些主要用于加载环境变量。

先感谢您。

javascript node.js linux export command-line-interface
1个回答
1
投票

您不能为不是当前进程后代的进程设置环境变量。在Linux下,没有系统环境变量这样的东西。

export不是一个独立的命令,而是一个内置的shell,它为当前shell进程设置环境变量,并在设置后分叉其子进程。就像你从这个标签打开终端和export的两个标签,并使用其他标签中的值。

您可以使用您的格式将密钥值保存到文件,然后另一个进程可以读取该文件以获取密钥的值。

© www.soinside.com 2019 - 2024. All rights reserved.