node.js fs重命名enoint
我正在尝试使用express framework为node.js中的文件上载编写一个处理程序。下面是它的原始骨架node.js fs重命名enoint,node.js,file-upload,express,Node.js,File Upload,Express,我正在尝试使用express framework为node.js中的文件上载编写一个处理程序。下面是它的原始骨架 exports.handleUpload = function(req,res){ var temp_path = req.files.doc.path, target_path = './uploads/' + req.files.doc.name ; fs.rename(temp_path, target_path, function(err){ if(e
exports.handleUpload = function(req,res){
var temp_path = req.files.doc.path,
target_path = './uploads/' + req.files.doc.name ;
fs.rename(temp_path, target_path, function(err){
if(err){
console.log(err);
}
fs.unlink(temp_path, function(){
if(err){
console.log(err)
}
})
//Do stuff
})
}
然而,我偶尔(并非总是)在执行renmae函数时会出错,尤其是在上传大文件时
这是控制台从错误代码中缓存的内容
{ [Error: ENOENT, rename '/tmp/16368-19661hu.pptx'] errno: 34, code: 'ENOENT', path: '/tmp/16368-19661hu.pptx' }
发件人:
上载/目录确实存在,权限不是问题。如果是这样,它每次都会失败,但事实并非如此。您使用的是/tmp目录。操作系统可能正在删除这些文件,因为它可以为/tmp目录删除这些文件,因此存在“随机性”问题。在执行其他操作之前使用fs.exists。您使用哪个中间件处理多部分表单?@SamT:connect multiparty-请参阅
XX(ENOENT, "no such file or directory")