如何处理expressjs中间件请求。 POST请求由dropzone保持挂起

我正在使用dropzone上传文件。 在服务器端我使用节点和expressjs。 我也使用MULTER作为文件处理中间件。

dropzone调用一个端点来保存服务器上的文件。

在服务器端,我创build了一个端点来处理文件:

exports.saveFile = function (req, res) { console.log(req.files); return res.status(200); //I have not added any file save logic here }; 

这是我如何configuration的Muller

 var app = express(); var server = require('http').createServer(app); app.use(multer({ dest: './uploads/'})); 

看起来像multer自动将文件保存到uploads文件夹。

问题 :即使文件保存在服务器上,请求在客户端仍然处于挂起状态。

我怎样才能返回从服务器到客户端的成功响应?

我是否需要在已创build的端点上添加一些代码,或者是否需要在multer提供的onFileUploadComplete()下添加所需的逻辑?

在这里输入图像描述

您需要一个Express路线为您的表单发布,将完成http请求。 Muller中间件将处理file upload并将其添加到请求中,以便它们可用于路由处理程序,但是您需要具有表单发布的路由。

从这个页面上的multer例子,你可以为你的路线做这样的事情:

 app.post('/myform', function(req, res){ console.log(req.body); // form fields console.log(req.files); // form files res.status(204).end() });