В моем приложении nodejs
есть простой скрипт, управляющий файлом. Когда приложение запускается, оно работает бесконечно и через фиксированные промежутки времени сохраняет текущее значение (то есть number
).
Допустим, у нас есть файл counter.dat
, а его содержимое - число 6570
. Приложение запущено и работает, файл корректно обновляется в течение нескольких дней. В некоторых случаях мне приходится перезапускать процесс, а иногда (редко) я нахожу внутри NaN
вместо правильного номера.
Я провел несколько тестов, и кажется, что в начальном файле и при выходе из него действительно иногда может храниться NaN.
const init = async () => {
...
const readCounter = await files.getContent("counter.dat");
...
};
const saveCounter = (counter) => {
// this value (counter) was never found NaN, but sometimes file has NaN inside
let stream = fs.createWriteStream("counter.dat");
stream.once('open', () => {
stream.write(counter);
stream.end();
});
};
Может ли быть так, что выходящий скрипт (например, с CTRL + C
в терминале MA C) может привести к тому, что number
будет сохранен как NaN
, и если это так, что можно сделать для предотвратить это?