[英]Can I run a node child process with node script from a buffer and not from another file?
目前,我正在从父节点脚本的字符串/缓冲区中生成节点脚本。 然后,我将生成脚本写入文件中,并在子进程中执行该文件。 最后,我取消链接临时脚本文件。
这是简化的代码:
fs.writeFileSync(scriptFile, program_code);
script_output = child_process.execSync("node " + scriptFile).toString('utf8');
fs.unlinkSync(scriptFile);
现在我有了输出,我继续进行进一步处理。 这很好。
但是,我觉得如果可以以某种方式从我拥有的内存缓冲区中运行节点脚本,而不是先将其写入文件,则可以避免写入临时文件的开销。
我查看了node的child_process模块,但没有找到任何方法来执行此操作。 可能是我错过了一些东西,还是有其他方法可以做到这一点? 我正在寻找这样的东西:
script_output = child_process.execSync("node " + ...).toString('utf8')
也许一些shell编程技巧? 我查看了节点的-e
和-i
选项,但并没有削减它。 我尝试了带有-i选项的<<
文档外壳程序功能,但是REPL
模式的<
提示符似乎出现了语法问题。
查看Node的VM API 。 我实际上没有尝试过,但是看起来vm.runInNewContext()
可能会执行您需要的操作,而无需启动Node的新副本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.