在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

广告
将在 10 秒后关闭
bannerAds