Запись в файл.txt до выхода из узла node.js
Я хотел бы, чтобы мой сервер сохранял некоторые важные данные при выходе из узла и загружал их в следующий раз.
Я попробовал то, что предложил ответ на этот вопрос, но сервер, кажется, закрывается, прежде чем он сможет записать в файл.
Это точный код, который я пытаюсь:
process.stdin.resume();
function exitHandler(options, err) {
if(!serverUp){return;}
serverUp = false;
fs.writeFile('server.txt', String(search_index),function (err) {
console.log("debug") // <-- This doesn't happen
process.exit();
});
}
//do something when app is closing
process.on('exit', exitHandler.bind(null,{cleanup:true}));
//catches ctrl+c event
process.on('SIGINT', exitHandler.bind(null, {exit:true}));
//catches uncaught exceptions
process.on('uncaughtException', exitHandler.bind(null, {exit:true}));
1 ответ
Я думаю, что если вы попробовали fs.writeFileSync
это решило бы это.
https://nodejs.org/api/fs.html
Код будет тогда:
function exitHandler(options, err) {
if(!serverUp){return;}
serverUp = false;
fs.writeFileSync('server.txt', String(search_index));
console.log("debug");
process.exit(); // Don't think you'll need this line any more
}
Я считаю, что проблема заключается в асинхронной природе. Используя синхронную версию writeFile, вы заставляете процесс завершить выполнение всего перед выходом.