Я создаю команду из своего экспресс-скрипта, но мне нужно различать ошибку и успех. Я искал функцию child.on('success'...)
, но ее не существует.
Этот фрагмент кода (конечно) не работает.
app.get(myID+'/test/', function(req, res){
var child = spawn('lbg');
child.on('error', function(err) {
console.info('Failed to start child process.');
res.status(404).send("Cannot send test command");
return;
});
res.json({statusMessage: "OK", statusCode: "200"});
});
Другими словами, мне нужно запустить только правильный ответ, а не оба!
app.get(myID+'/test/', function(req, res){
var child = spawn('lbg');
child.on('close', code => {
if (code === 0) {
res.json({statusMessage: "OK", statusCode: "200"});
} else {
res.status(404).send("Cannot send test command");
}
}).on('error', err => res.status(404).send(err)) ;
});
Кажется, спавн не может найти скрипт. Попробуйте с абсолютным путем для начала.
Ярослав, да, но я хотел бы также отловить ошибку неправильного пути (ENOENT) или несуществующий скрипт
app.get(myID+'/test/', function(req, res){
var child = spawn('lbg');
child.on('error', err => {
if (err) {
res.status(404).send("Cannot send test command");
} else {
res.status(200).send("Ok");
}
});
});
не работал. Ошибка: spawn lbg ENOENT, и скрипт завершил работу.