循环调用fs模块进行写入文件操作报错的问题
我做了一个错误日志记录的功能,代码如下:
fs.open(filename, 'a', function(error, fd){
if(!error){
fs.write(fd, logs);
fs.close(fd);
logs = ‘’;
}
});
由于循环写入日志,造成不稳定,执行一段时间之后就会报错如下:
fs.js:75
throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs
^
Error: EBADF, write
请问该怎么处理,或者有其他什么好的方法,谢谢!
3 回复
fs的write和close都是异步的,你要改成回调方式。
或者,fs有个appendfile可以直接用。
fs.appendFile('message.txt', 'data to append', function (err) {
if (err) throw err;
console.log('The "data to append" was appended to file!');
});
嗯,用appendFile可以的!谢谢!