fs.createWriteStream 错误:ENOENT

pay*_*ike 5 upload multipart dir node.js express

我使用 connect-busboy 来处理文件上传,这是代码

req.busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {


    var type = mimetype.split('/')[1]
    var newName = (new Date()).valueOf();
    var saveTo = path.join(__dirname, '../../userUpload',req.user._id+'', newName+'.'+type);

    file.pipe(fs.createWriteStream(saveTo,{flags: 'w'}));

});
Run Code Online (Sandbox Code Playgroud)

如您所见,我尝试将上传的文件保存在动态目录(以 user._id 命名)中,并使用新的文件名;

但它给了我一个错误说

"Error: ENOENT, open '\userUpload\53a65fde4e22939811aa306d\1404636837084.mp4' " 
Run Code Online (Sandbox Code Playgroud)

但是当我首先手动创建 user._id 目录时,它会起作用,所以 fs.createWriteStream 无法处理动态目录,对吗?

我怎样才能做到这一点?

sst*_*oss 4

您尝试读取的目录不存在!确保该路径存在。