#javascript #node.js
#javascript #node.js
Вопрос:
У меня есть несколько Node.js сценарии (например: script1.js , script2.js , script3.js и т.д.), Которые должны выполняться в определенной последовательности.
Я пытаюсь иметь «мастер» (так сказать) Скрипт узла, который установит порядок выполнения этих файлов (например: script1.js -> script2.js -> script3.js и так далее). P.S — script1.js должен завершить выполнение до script2.js может запускаться и так далее.
Я попытался выполнить скрипт с одним узлом, используя «child_process», и это сработало, нужна помощь с несколькими файлами и в определенной последовательности.
Заранее спасибо!
Ответ №1:
Вы должны установить свой родительский файл Js в файл package.json.
"scripts": {
"test": "echo "Error: no test specified" amp;amp; exit 1",
"start": "nodemon app.js"
}
А затем поместите свои дочерние компоненты в app.js файл в соответствии с выводом, который вы хотите.
Ответ №2:
Создайте один файл, вызовите его index.js
использование index.js для импорта или запроса других файлов
на самом деле я делаю это со всеми своими маршрутами в express js, используя express-enrouten.
//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()
}
Комментарии:
1. вы можете просто использовать promises и создать своего рода цепочку if then
Ответ №3:
Если вы не выполняете никаких асинхронных операций в файле, он загружается последовательно. в противном случае создайте другой файл и вызовите в нем функцию 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();
}
Ответ №4:
Чтобы упростить запуск нескольких сценариев в определенной последовательности, вы должны поместить все команды в package.json в разделе «скрипты» в этой последовательности. затем вам просто нужно запустить одну команду в терминале, чтобы достичь этого.
ПРИМЕР:
Сначала откройте package.json:
"scripts": {
// ... some other scripts ...
"runall": "node script1.js [params] amp;amp; node script2.js [params] amp;amp; node script3.js [params]]" // params is optional
}
Второй: откройте терминал и введите
npm run runall