【发布时间】: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