我可以在process.env中存储对象

use*_*841 16 node.js

我正在存储一个对象(有几种方法)process.env,如下所示:

var obj = createObject(); // returns new object
process.env.OBJ = obj;
Run Code Online (Sandbox Code Playgroud)

当我从其他地方访问此对象时,我没有看到任何方法.

var obj = process.env.OBJ;
Run Code Online (Sandbox Code Playgroud)

显示[Object Object].

这是为什么?

ras*_*had 11

简短的回答是:没有

不,您不能存储对象,process.env因为它存储环境变量PATH, SHELL, TMPDIR和其他由String值表示的变量.如果运行命令,console.log(process.env);您可以查看系统的所有env变量,特别是您可以设置自己的env变量(例如process.env.home = 'home'),这些变量将在您运行nodejs应用程序的过程中可用.

解决方案存在
Stringify JSON对象并保存为env变量.然后在需要对象时解析并使用它


小智 10

process.env是存储您的环境变量而不是真正存储您的对象.你可以存储你的变量:

process.env['CONSUMER_KEY'] = ""
process.env['CONSUMER_SECRET'] = ""
process.env['ACCESS_TOKEN_KEY'] = ""
process.env['ACCESS_TOKEN_SECRET'] = ""
Run Code Online (Sandbox Code Playgroud)

这是它的链接https://nodejs.org/api/process.html#process_process_env

如果要存储方法,则应创建一个全局对象并将方法分配给该方法.


小智 5

尽管不能process.env直接存储对象,但仍然可以存储对象process本身。