我可以使用缓冲区中的节点脚本而不是其他文件运行节点子进程吗?

时间:2015-10-16 07:44:07

标签: node.js express child-process

目前,我正在从父节点脚本生成字符串/缓冲区中的节点脚本。然后我将生成脚本写入文件并在子进程中执行该文件。最后,我取消了临时脚本文件的链接。

以下是简化代码:

fs.writeFileSync(scriptFile, program_code); 
script_output = child_process.execSync("node " + scriptFile).toString('utf8');
fs.unlinkSync(scriptFile);

现在我有了输出,我继续进一步处理。这很好。

但是,如果我能以某种方式从内存缓冲区运行节点脚本而不是先将其写入文件,我觉得可以避免写入临时文件的开销。

我查看了节点的child_process模块,但没有找到任何方法。可能是我错过了什么或者还有其他方法可以做到这一点吗?我正在寻找这样的东西:

 script_output = child_process.execSync("node " + ...).toString('utf8')

也许有些shell编程技巧?我查看了节点的-e-i选项,但没有删除它。我使用-i选项尝试<<此处文档shell功能,但<模式的REPL提示符似乎会产生语法问题。

1 个答案:

答案 0 :(得分:1)

查看节点VM API。我还没有尝试过这个,但看起来vm.runInNewContext()可能会做你需要的,而不会启动Node的新副本。