Node.js - process.exit И добавляет все сообщения console.log в текстовый файл - PullRequest
0 голосов
/ 01 июня 2019

Я новичок в кукловоде.Я использую скрипт для входа на сайт.Если имя пользователя или пароль неверны, я хочу записать консольное сообщение в файл И выйти с номером ошибки.Это число важно, потому что оно будет использоваться в Excel VBA.Я использую пакетный файл (Windows) для запуска сценария node.js и использую функцию в начале сценария для добавления сообщения консоли.

Я запускаю пакетный файл для запуска сценария:

node C:\*my-path*\node-script.js
exit /b %errorlevel%

Я вижу сообщение в консоли, но в файле журнала не все сообщение об ошибке, потому что process.exit (1) закрывает процедуру перед ним.

Этофункция для добавления сообщений console.log:

fs.unlinkSync("./tmp/node-js.log");
console.log = function(msg) {
    fs.appendFile("./tmp/node-js.log", msg+'\r\n', 'ascii', function(err) {
        if(err) {
            return trueLog(err);
        }
    });
    trueLog(msg);

И затем, это код для входа в систему:

await page.goto('https://google-wrong.com/', {  //a wrong url to test
                waitUntil: 'networkidle2',
                timeout: 10000
}).catch(error => {
    throw (console.log('\r\n'+ 'JAVASCRIPT * Wrong Url ! * ' + error)), process.exit(1) });

Итак, если я использую browser.close () вместо process.exit (1) я могу добавить сообщение целиком, но не могу выйти с кодом ошибки;это мой console.log:

> Open browser in memory... Done!
> Connect to google-wrong.com... Error!
> JAVASCRIPT * Wrong Url ! * Error: net::ERR_NAME_NOT_RESOLVED at https://google-wrong.com/

И в командной строке Dos я вижу:

> exit /b 0

Если я использую process.exit (1), я вижу "выход сошибка "номер:

выход / b 1

... но я не могу записать все сообщение:

> Open browser in memory... Done!
> Connect to google-wrong.com... Error

Любые идеи?Заранее спасибо, и извините за мой плохой английский, я надеюсь, что прояснился.

1 Ответ

0 голосов
/ 01 июня 2019

Я думаю, что вы должны использовать fs.appendFileSync в вашей функции console.log, и вам не нужно ключевое слово throw в обработчике перехвата

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...