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

时间:2015-05-09 20:28:53

标签: node.js process fork

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

如何在节点中实现此目的?

1 个答案:

答案 0 :(得分:5)

您可以使用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]();