Предупреждение консоли не отображается при выполнении выхода в node.js

Я новичок в Node.js. Я реализовал \exit ссылка на мой сайт. При просмотре вызывается следующая функция:

function exitRequest(req, res) {

    res.setHeader('Content-Type', 'text/html');    
    res.send("<html><body>Bye</body></html>");

    console.warn('%s: Exit requested.', Date(Date.now()) );
    process.exit(0);

};

Страница отображается правильно и node.js Сервер выключается, но предупреждение консоли не отображается. Тем не менее, звонки console.warn успешны в других частях приложения. Я вижу сообщения в окне вывода.

Что может вызвать эту проблему?

1 ответ

Решение

Попробуйте отложить завершение процесса:

console.warn('%s: Exit requested.', Date(Date.now()));
process.nextTick(function() { process.exit(0); });

Или используя setTimeout:

setTimeout(function() { process.exit(0); }, 0);

Если вы не хотите создавать новую анонимную функцию, вы можете использовать bind:

var exit = process.exit.bind(process, 0);

// Later...
process.nextTick(exit);
Другие вопросы по тегам