如何处理 expressjs 中间件请求。 POST 由 dropzone 发出的请求仍处于待处理状态

How to handle expressjs middleware request. POST request remains pending made by dropzone

我正在使用 dropzone 上传文件。在服务器端,我使用的是 node 和 expressjs。我还使用 multer 作为文件处理中间件。

dropzone 调用一个端点以将文件保存在服务器上。

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

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

这是我配置的方式multer

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

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

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

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

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

您的表单 post 需要一个 Express 路由来完成 http 请求。 multer 中间件将处理文件上传并将它们添加到请求中,以便路由处理程序可以使用它们,但是您需要有一个用于 post.

形式的路由

根据 this page 上的 multer 示例,您可以为您的路线做这样的事情:

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