是否有一种方法可以在节点中同步执行多个JavaScript文件
Is there a way to synchronously execute multiple JavaScript files in node?
因此,在Node中,我可以使用以下命令执行JavaScript文件:
$ node src/someFile.js
但是,有没有一种方法可以同步执行给定目录中的所有JavaScript文件(一个文件执行,然后在完成后执行下一个文件,等等)?基本上,有没有一个命令会产生类似的效果
$ node src/firstFile.js
$ node src/secondFile.js
$ node src/thirdFile.js
...
我试过这样的命令
$ node src/*.js
但没有成功。
如果没有这样的命令,那么做这样的事情的最佳方式是什么?
我不确定这是否适用,因为这是shell的一个功能,不是节点运行时的功能,而是。。
for f in src/*.js; do node "$f"; done
或者在Powershell中:
Get-ChildItem .'*.js | Foreach-Object {
node $_
}
您可以使用spawn从类似的节点运行node
进程
(function() {
var cp = require('child_process');
var childProcess = cp.spawn('node', [`src/firstFile.js`]);
在这一点上,您必须添加一些侦听器:
// now listens events
// Listen for an exit event:
child.on('exit', function(exitCode) {
console.log("Child exited with code: " + exitCode);
return resolve(exitCode);
});
// Listen for stdout data
child.stdout.on('data', function(data) {
console.log(data.toString());
});
// child error
child.stderr.on('data',
function(data) {
console.log('err data: ' + data);
// on error, kill this child
child.kill();
}
);
}).call(this);
当然,您需要在这里序列化执行,但这很容易,因为您有child.on('exit')
,它告诉您进程结束了,所以您可以开始下一个进程。
请参阅Controlling Multiple Processes in Node,以获得我的示例工作解决方案,该解决方案在node
中运行多个进程,并等待执行结束/加入。
使用POSIX shell:
$ for js in src/*.js; do node "$js"; done
如果从shell调用每一个不是一个硬性要求,我会从shell中用一个节点进程来启动它们。此节点脚本将:
- 遍历模块目录
- 需要执行它的第一个,并传递回调,模块将在完成时调用该回调
- 当调用完整的回调时,执行目录中的下一个脚本
相关文章:
- 节点.js / 续集.js / 快递.js - 如何插入多对多关联?(同步/异步?
- 是否有一种方法可以在节点中同步执行多个JavaScript文件
- 节点尝试在同步写入完成之前读取文件
- 同步数据库请求节点JS ORM
- 节点.js与 ASYC 瀑布模块同步调用
- 如何在节点.js中同步读取文件或流
- 如何在节点/环回中同步调用 model.find 方法
- 节点 JS 使用异步请求同步工作流
- 节点.js和画布,游戏循环不同步
- 同步 JavaScript 调用节点 js- 执行 GET in for 循环
- 用于节点的FTP模块.js可以同步文件
- 无法弄清楚如何在节点.js中使用同步.js
- 节点应用.js - 同步读取文件
- 如何从节点.js中的URL同步下载文件
- 节点JS,从两个链接同步发出HTTPS请求
- 想要在节点.js中同步发送请求
- 如何将节点 js 的异步功能处理为在节点 js 中同步
- 同步节点中的文件写入
- 同步节点js函数
- 使循环同步节点js web-kit