防止通过child_process.spawn

时间:2016-03-18 15:34:45

标签: node.js child-process spawn

当我从parent.js文件中运行

child_process.spawn('node', ['child.js']);

我知道parent.js中设置的所有环境变量也在child.js中设置。现在,虽然我知道我可以使用env属性添加环境变量:

child_process.spawn('node', ['child.js'], {env: {newenv: 'newvalue'}});

如何删除一个?例如,假设process.env['parentonly']中设置了一些parent.js环境变量,并且我不希望它通过child.js转发到spawn。我怎么能这样做?

我试过

child_process.spawn('node', ['child.js'], {env: {parentonly: /* anything like 0, false, null, undefined here.*/}});

但这不起作用。如果在parent.js我明确地做了

delete process.env['parentonly'];

然后在parentonly中没有设置child.js,但这是轻微侵入性的。有没有解决方法呢?

1 个答案:

答案 0 :(得分:0)

这是我的方式。 创建一个对象,克隆父env。 (定义您自己的克隆方法,过滤掉您不想从父env复制的任何属性) 然后将新对象作为子环境传递给子进程。