单节点脚本可顺序运行多个节点脚本

时间:2019-04-07 04:47:32

标签: javascript node.js

我有多个Node.js脚本(例如:script1.js,script2.js,script3.js等)需要按特定的顺序执行。

我正在尝试拥有一个“主”(可以这么说)节点脚本,该脚本将列出这些文件的执行顺序(例如:script1.js-> script2.js-> script3.js,依此类推) 。附注-script1.js必须先完成执行,然后才能启动script2.js,依此类推。

我尝试使用“ child_process”执行单个Node脚本,并且该脚本有效,需要多个文件的帮助,并且需要特定的顺序。

提前谢谢!

4 个答案:

答案 0 :(得分:0)

您必须在package.json文件中设置父Js文件。

    <a id="link" href="https://google.co.uk">
      Click/Touch and Drag/Swipe
    </a>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

然后根据所需输出将子组件放入app.js文件。

答案 1 :(得分:0)

创建一个名为index.js的文件

使用index.js导入或需要其他文件

我实际上是使用express-enrouten在express js中用我的所有路由做到这一点的。

 //index.js
 require('folder/one.js');
 require('folder/two.js');

 //folder/one.js -> express route format but you can be as creative as you want
 module.exports = function(req, res, next){
   //do some things

   //Go to next script
   next()
 }

答案 2 :(得分:0)

如果您未在文件中执行任何异步操作,则会按顺序加载。否则,请创建另一个文件并在其中调用async函数。

// script1.js
module.export.script1 = async () => {
    // some async code 
}

// script2.js
module.export.script2 = async () => {
    // some async code 
}

// script3.js
module.export.script3 = async () => {
    // some async code 
}

// index.js
const script1 = require('./script1.js');
const script2 = require('./script2.js');
const script3 = require('./script3.js');

async function name(params) {
    await script1();
    await script2();
    await script3();
}

答案 3 :(得分:0)

为了便于按特定顺序运行多个脚本,您应该将所有命令放入 package.json 中“脚本”部分的该顺序。那么你只需要在终端中运行一个命令来实现它。

例如:
首先打开package.json:

"scripts": {
    // ... some other scripts ...
    "runall": "node script1.js [params] && node script2.js [params] && node script3.js [params]]" // params is optional
  }

第二:打开终端并输入

<块引用>

npm run runall