Javascript 在WriteStream中修改或删除同一文件时处理文件的删除
使用Javascript 在WriteStream中修改或删除同一文件时处理文件的删除,javascript,node.js,async-await,fs,nodejs-stream,Javascript,Node.js,Async Await,Fs,Nodejs Stream,使用fs.createWriteStream打开文件时,如何处理基础文件被删除的情况(例如被第三方删除,如logrotate) 在这种情况下,似乎没有任何正常事件发生 例如: const stream = fs.createWriteStream(filename, { flags: 'a' }); // None of these seem to fire stream.on('close', () => console.log('CLOSED')); stream.on('error
fs.createWriteStream
打开文件时,如何处理基础文件被删除的情况(例如被第三方删除,如logrotate
)
在这种情况下,似乎没有任何正常事件发生
例如:
const stream = fs.createWriteStream(filename, { flags: 'a' });
// None of these seem to fire
stream.on('close', () => console.log('CLOSED'));
stream.on('error', () => console.log('ERRORED'));
stream.on('finish', () => console.log('FINISHED'));
stream.write('foo');
// wait for flush...
fs.unlinkSync(filename);
// This doesn't work, but also doesn't error
stream.write('bar');
工作示例:
相关的:
- 节点v12.10.0添加了
选项,这可能会修复这个(?),但我想在v10(LTS)中这样做emitClose