我想在我的 route 使用 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是一种更加模块化的路由处理方式。
我是一名优秀的程序员,十分优秀!