我对node.js完全不熟悉。我有两个我想运行的node.js脚本。我知道我可以单独运行它们但我想创建一个运行这两个脚本的node.js脚本。应该是主node.js脚本的代码?
答案 0 :(得分:6)
您需要做的就是使用node.js模块格式,并导出每个node.js脚本的模块定义,例如:
//module1.js
var colors = require('colors');
function module1() {
console.log('module1 started doing its job!'.red);
setInterval(function () {
console.log(('module1 timer:' + new Date().getTime()).red);
}, 2000);
}
module.exports = module1;
和
//module2.js
var colors = require('colors');
function module2() {
console.log('module2 started doing its job!'.blue);
setTimeout(function () {
setInterval(function () {
console.log(('module2 timer:' + new Date().getTime()).blue);
}, 2000);
}, 1000);
}
module.exports = module2;
代码中的setTimeout
和setInterval
仅用于向您展示两者同时工作。第一个模块一旦被调用,就会每隔2秒开始在控制台中记录一些内容,而另一个模块先等待一秒钟,然后每2秒开始执行相同的操作。
我还使用npm colors package允许每个模块使用其特定颜色打印其输出(以便能够在命令中首先运行npm install colors
)。在此示例中,module1
打印red
个日志,module2
在blue
中打印其日志。所有这些只是为了向您展示如何在JavaScript和Node.js
中轻松实现并发性。
最后,从主Node.js
脚本(此处命名为index.js
)运行这两个模块,您可以轻松地执行此操作:
//index.js
var module1 = require('./module1'),
module2 = require('./module2');
module1();
module2();
并执行它:
node ./index.js
然后你会有一个输出:
答案 1 :(得分:1)
您可以使用child_process.spawn
在一个脚本中启动每个node.js脚本。或者,child_process.fork
也可能适合您的需要。