我正在尝试在我的node / express应用程序中上传文件,但每次重命名文件时我都会收到ENOENT错误。我的代码是:
var tmp_path = req.files.file.path;
fs.rename(tmp_path, target_path, function (err) {
if(err) throw err;
...
});
其中target_path将是目标路径。如果我这样做:
console.log('exists ' + fs.existsSync(tmp_path));
然后我的服务器记录:
exists true
此外,列出tmp目录的内容显示该文件在那里。有什么问题?
答案 0 :(得分:1)
fs.rename
等FS方法期望路径中的任何目录都已存在。当他们不这样做时,你会得到一个ENOENT。因为你经常所说的“制作这个文件 - 以及我为它指定的路径中的任何目录”你可能要考虑使用一个NPM库来抽象使用处理这些事情的方法访问fs。
有很多选择。例如,fs-extra是经过更好测试的库之一。使用fs-extra,您可以在该操作中使用ensureDir
来使目录结构首先存在(如果它尚不存在。)