gpt4 book ai didi

javascript - 如何使用 nodejs 管理完全独立的上下文?

转载 作者:行者123 更新时间:2023-11-29 10:29:08 24 4
gpt4 key购买 nike

我正在写一个基于nodejs的javascript测试框架。我的服务器读取 javacript 文件,检测它们,然后在它自己的上下文中执行它们。

它(非常)基本上是这样的:

const file = process.argv[2];

require('fs').readFile(
file,
'utf-8',
(error, data) => {
eval(data);
}
);

一切正常,但我不喜欢将我的服务器上下文与测试上下文混合。 nodejs 如何在完全独立的上下文中执行 javascript 代码?

理想情况下,它应该是这样的:

other_context.eval(data);

非常感谢您的帮助!

最佳答案

有多种方法可以做到这一点。您现在可以尝试的最简单的方法是将读取的文件替换为 child_process#fork() .

这意味着您在一个完全独立的进程中运行,这很好,而且您不需要 eval(),这也非常好。

本质上:

const {
fork
} = require('child_process');

const child = fork(file);
child.on("message", m => console.log(m));

主要是从服务器中获取您正在测试的代码。我只是认为如果你那样做,可能会发生可怕的事情。

另一个过于广泛而无法涵盖的选项是利用 Docker。这样,被执行的代码不仅在另一个进程中,而且实际上(这实际上是在广泛地绘画)在另一台计算机上。

关于javascript - 如何使用 nodejs 管理完全独立的上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50977297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com