У меня есть приложение NodeJs, работающее в следующем каталоге
Путь первого приложения '/ users / user1 / projects / sampleProject' , работающее на 3000 порту.
Путь второго приложения '/ users / user1 / demoProjects / demo1' , который будет работать на порту 5000 при запуске функции маршрутизатора из первого приложения.
Второе приложение NodeJ еще не запущено (оно будет работать на порту 5000).Он должен запускаться независимо при нажатии на функцию маршрутизатора в первом приложении NodeJs, которое работает на порте 3000, т. Е. (http://localhost:3000/server/startServer). Я новичок в дочерних процессах NodeJ. Пожалуйста, исправьте меня, если я ошибаюсь. И предложите мнеправильный способ сделать это. Спасибо
Запустить приложение другого узла, используя node.js?
Я пробовал, как показано ниже
// First NodeJs application
import { exec } from "child_process";
router.get('/startServer', async (req, res, next) => {
console.log("Initiated request")
let startServerInstance = 'cd "/users/user1/demoProjects/demo1" && npm run dev'; // path for the second NodeJs application
console.log("Server instance path => " + startServerInstance)
try {
// exec from child process, Spawns a shell then executes the command within that shell
let child = exec(startServerInstance, function (err, stdout, stderr) {
if (err) throw err;
else {
console.log("result ")
res.json({
status: 'success'
});
}
});
} catch (error) {
res.json({
status: 'error',
message: error
});
}
});
Приведенный выше код выполняет команду и запускает второе приложение для запуска в фоновом режиме, но ничего не возвращает. Ошибка или результат успеха.