我想在路线中使用connect-multiparty。我只发现以下内容...

var multipart = require('connect-multiparty');
var multipartMiddleware = multipart();
app.post('/upload', multipartMiddleware, function(req, resp) {
  console.log(req.body, req.files);
  // don't forget to delete all req.files when done
});


但是我的路线结构如下所示...

app.route('/tasks')
    .get(todoList.list_all_tasks)
    .post(todoList.create_a_task);


所以我尝试了这样的.post(todoList.create_a_task, multipartMiddleware),但是它在req.body中为空。如何在多主体请求中正确传递connect-multiparty

最佳答案

如果要使用此模式为所有请求安装中间件,请执行以下步骤:那么您应该使用:

app.route('/tasks')
    .all(multipartMiddleware)
    .get(todoList.list_all_tasks)
    .post(todoList.create_a_task);


而且,如果您只想挂载它来处理发布请求,那么以下方法应该起作用:

app.route('/tasks')
    .get(todoList.list_all_tasks)
    .post(multipartMiddleware, todoList.create_a_task);


参见:app.route()

同样,express.Router是用于处理路由的模块化程度更高的方法。

09-12 07:06