Node.js 环境变量(使用process.env创建)是否在父级和;子节点进程?
我想知道为什么主节点进程中使用Node.js 环境变量(使用process.env创建)是否在父级和;子节点进程?,node.js,Node.js,我想知道为什么主节点进程中使用process.env.创建的环境变量在使用节点的ForkAPI创建的任何子进程中都可用 举个例子,我正在使用Electron构建一个桌面应用程序。在该应用程序中,我使用如下代码通过UI为代理设置设置环境变量: process.env.HTTPS_PROXY = 'proxy server url'; 现在从这个应用程序开始,我需要在后台运行一些任务,为此,我将使用Node的ForkAPI启动新的进程。我注意到,当我在子进程中打印这个变量的值时,我得到的是我在UI
process.env.创建的环境变量在使用节点的Fork
API创建的任何子进程中都可用
举个例子,我正在使用Electron构建一个桌面应用程序。在该应用程序中,我使用如下代码通过UI为代理设置设置环境变量:
process.env.HTTPS_PROXY = 'proxy server url';
现在从这个应用程序开始,我需要在后台运行一些任务,为此,我将使用Node的Fork
API启动新的进程。我注意到,当我在子进程中打印这个变量的值时,我得到的是我在UI(父进程)中设置的值
我的理解是,当我使用Fork
生成子进程时,会创建一个完全独立于父进程的新进程(它们之间创建的IPC通道除外)。如果这些流程彼此独立,那么我在父流程中定义的这些环境变量如何在子流程中可用 你部分正确。无论何时调用fork()
进程,新的子进程都是独立的,正如您正确地说的,它与IPC无关。但这里的关键是,这个子对象从其父对象继承了它的“环境”。所以本质上,父级中的任何“环境”变量都是子级的一部分,但任何“shell”变量都不是。类似的概念也适用于“导出”变量。部分正确。无论何时调用fork()
进程,新的子进程都是独立的,正如您正确地说的,它与IPC无关。但这里的关键是,这个子对象从其父对象继承了它的“环境”。所以本质上,父级中的任何“环境”变量都是子级的一部分,但任何“shell”变量都不是。类似的概念也适用于“导出”变量。谢谢Anshul。是否有一些文档链接,你可以指向我可以阅读更多关于这方面的信息?也许会有帮助:)谢谢!你分享的链接确实很有帮助。谢谢Anshul。是否有一些文档链接,你可以指向我可以阅读更多关于这方面的信息?也许会有帮助:)谢谢!你分享的链接确实很有帮助。