循环调用fs模块进行写入文件操作报错的问题
发布于 12 年前 作者 didiaoyu 5824 次预览 最后一次回复是 12 年前 来自
我做了一个错误日志记录的功能,代码如下:
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可以直接用。
Node 现在都有
fs.open了, 真是不习惯啊嗯,用appendFile可以的!谢谢!