我想在路线中使用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是用于处理路由的模块化程度更高的方法。