在新的流程节点中执行功能

Execute a function in a new process node

我正在寻找一种方法(npm 模块或 lib 会非常有用)在新进程中 运行 javascript 函数。但是,我不想在不同的文件中定义这个函数。我正在寻找类似 POSIX fork 机制的东西。

我如何在节点中实现这一点?

您可以使用 child_process.fork 分叉新进程。它接受一个单独的模块,但如果你必须将它全部包含在一个文件中,你可以给你的脚本一个模式参数:

var child_process = require('child_process');
var mode = process.argv[2] ? process.argv[2] : 'default';

var modes = {
    default: function() {
        console.log('I am the default, I will fork a child');
        child_process.fork(__filename, ['child']);
    },
    child: function() {
        console.log('I am the child!');
    }
};

modes[mode]();