Javascript 如何从主node.js脚本运行多个node.js脚本?
我是node.js的新手。我有两个node.js脚本要运行。我知道我可以单独运行它们,但我想创建一个运行这两个脚本的node.js脚本。主node.js脚本的代码应该是什么?您可以使用Javascript 如何从主node.js脚本运行多个node.js脚本?,javascript,jquery,node.js,Javascript,Jquery,Node.js,我是node.js的新手。我有两个node.js脚本要运行。我知道我可以单独运行它们,但我想创建一个运行这两个脚本的node.js脚本。主node.js脚本的代码应该是什么?您可以使用子进程。spawn一次启动每个node.js脚本。或者,child\u process.fork也可以满足您的需要 您只需使用node.js模块格式,并导出每个node.js脚本的模块定义,如: //module1.js var colors = require('colors'); function modul
子进程。spawn
一次启动每个node.js脚本。或者,child\u process.fork
也可以满足您的需要
您只需使用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;
及
代码中的setTimeout
和setInterval
仅用于显示两者同时工作。第一个模块一旦被调用,每2秒钟开始在控制台中记录一些东西,另一个模块先等待一秒钟,然后每2秒钟开始做同样的事情
我还允许每个模块使用其特定的颜色打印其输出(以便能够在命令中首先运行npm install colors
)。在本例中,module1
打印red
日志,module2
在blue
中打印日志。所有这些都只是为了向您展示如何在JavaScript和Node.js
中轻松实现并发性
最后,要从一个名为index.js
的主Node.js
脚本运行这两个模块,您可以轻松地执行以下操作:
//index.js
var module1 = require('./module1'),
module2 = require('./module2');
module1();
module2();
然后像这样执行它:
node ./index.js
然后您将得到如下输出:
您只需将这两个脚本设置为模块,每个模块输出一个主功能即可。您
require()
将它们放入并在每个模块上执行一个主函数。如果模块阻塞,则所有阻塞?@hacket快速回答为是。但关键是NodeJS不提供多线程解决方案,NodeJS和JavaScript中的主要并发模型基于。setTimeout和setInterval都使用此事件循环功能,只是为了防止阻塞IO。更具体地说,您可以使用Web Workers实现类似于多线程方法的解决方案,但Workers仍然都来自单个节点进程。@Hacketo在JavaScript和NodeJ世界中有许多众所周知的做法,这些做法被认为不利于防止我们阻塞IO。在NodeJS世界中,著名的synchronous fs.readFile就是其中之一,而在浏览器中,synchronous XHR请求是阻止整个线程的另一种糟糕做法。@Hacketo如果对WebWorker解决方案感兴趣,请查看。
node ./index.js