node.js fs重命名enoint

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

我正在尝试使用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(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")