child_process nodejs не выдает ошибку, если файл не существует - PullRequest
0 голосов
/ 15 февраля 2019

Я должен выполнить сценарий VBS с помощью Nodejs , поэтому я использую child_process .

Моя проблема заключается в том, что при возникновении ошибки в процессе порождения онникогда не генерирует событие ошибки.

const { spawn } = require( 'child_process' );

const vbs = spawn( 'cscript.exe', [ vbsPath] );
vbs.on('error', function( err ){
   console.log(err);
})
vbs.on('close', async function(code) {
   console.log(code)
});

vbsPath - это путь VBS, и если я пытаюсь указать неверный путь или добавить ошибку в VBS, он всегда срабатывает close событие с кодом 1 вместо 0. но мой вопрос:

Почему оно никогда не запускает событие ошибки?Надежен ли код события закрытия, чтобы узнать, возвращает ли скрипт ошибку?

1 Ответ

0 голосов
/ 15 февраля 2019

Процесс запускается хорошо, из-за этого вы не получаете сообщение об ошибке.

От документы

«Ошибка»событие генерируется всякий раз, когда:

процесс не может быть запущен, или

процесс не может быть остановлен, или

Не удалось отправить сообщение дочернему процессу.

Например, если вы напишите const vbs = spawn('ciao', ['vbsPath']), вы получите сообщение об ошибке.

...