在Node.js文件系统中感到困惑
环境
- Node.js 5.1
总之
当使用Node.js的核心模块fs模块来异步保存get请求的响应并在完成后显示一些内容时,我编写了一个程序。
這個問題可以有很多種解釋。
var outfile = fs.createWriteStream(savepath);
http.get(url, (res) => {
res.pipe(outfile, { end: false});
res.on('end', () => {
outfile.close();
console.log("ok");
});
});
这是源代码的一部分,但执行时可能会在中途写入文件,但最终无法完整写入而终止。
应对
当结束可写性流时,使用end方法。
似乎使用 close 方法时可以强制关闭文件,即使文件正在进行写入。如果使用 end 方法,它会等待 finish 事件触发。
参考链接:https://nodejs.org/api/stream.html#stream_class_stream_writable