【问题标题】:No such file or directory when piping from request in Node从节点中的请求管道时没有这样的文件或目录
【发布时间】:2017-08-18 11:31:04
【问题描述】:

我需要从 URL 请求一个 .zip 文件,然后将内容传递给 AdmZip

当尝试通过管道输出 request 库时:

const zipFilePath = path.join(batchPath, this.zipFile.filename);
const out = fs.createWriteStream(zipFilePath);

const req = request.get(this.zipFile.url);
req.pipe(out);
req.on('end', function() {
  console.log("I should be here, but I'm not");
});

我收到:

错误:ENOENT:没有这样的文件或目录,打开 'C:\Users\Brandon\work\keystone4-projects\html-email\batch-content\5996588a3bc30010502bfa9e\test.zip'

我做错了什么?

编辑:

我补充说:

if (!fs.existsSync(batchPath)) {
  fs.mkdirSync(batchPath);
}

在尝试管道输出之前,我的功能已成功完成。

【问题讨论】:

  • 您是否检查了指向目标文件名的目录结构是否存在?
  • “C:\Users\Brandon\work\keystone4-projects\html-email\batch-content\”之前的所有内容都是正确的。我打赌我必须创建目录“5996588a3bc30010502bfa9e”......对吗?
  • 如果它不存在,是的。写入文件时,Node 不会执行任何类型的隐式“mkdir -p”行为。
  • 就是这样。我不知道为什么我之前没有想到……太累了。感谢您的帮助,我很感激!

标签: node.js


【解决方案1】:

通常当您在写入文件时收到此错误,这意味着导致正在写入的文件的路径不存在。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    • 2019-09-19
    • 2017-05-14
    • 2017-09-13
    • 2018-08-09
    • 2015-09-27
    • 1970-01-01
    相关资源
    最近更新 更多