node.js文件上载配置

时间:2014-04-09 09:48:41

标签: node.js express

无论我在过去24小时内搜索和更改过多少玩具,我根本无法找到允许Node.js上传多个文件的正确设置组合。

我的设置非常简单 - 我有一个表单界面,可以将多部分内容(文件)发布到端点..让我们调用它: / theendpoint

这个终点应该解析多个文件。但是,在解析过程中,上传文件后需要调用各种事件。

我目前正在使用应用配置中的express.bodyParser({ uploadDir:'/tmp', keepextensions:true, defer:true});

使用以下方法,我试图解析文件,但问题是

  

只有2个文件将开始上传,并且无法完成(即进度条在未完全完成的情况下挂在最后)。

     

表单上传的其他文件(项目3+)甚至没有开始上传到服务器。

这似乎是某种异步持有,但我无法正确解释这个问题。上传端点使用的一些代码如下:

// This applies to /theendpoint route. Using Express.
exports.theendpoint = function(req,res){
   console.log(req.files);
   fs.readfile(uploadPath, function(err,data){

      if(err) throw err;
      fs.writeFile(newFilePath, data, function(err){
         // Series of checks and definitions
         // Database connection
         // Conditional executions

         fs.unlink(req.files.file.path, function(err){
            if(err) throw err;
            console.log('Deleted');
         });
      });
   });
};

显然我在这里省略了一些代码。如果有人可以提供帮助 - 这种结构是否可行?

您应该知道注释部分中的项目...即数据库连接等是异步任务。

1 个答案:

答案 0 :(得分:0)

fs.unlink(req.files.file.path, function(err){
   if(err) throw err;
   console.log('Deleted');
});

添加

res.redirect("back");

它有效!