在一个中使用 2 个中间件功能 post

Using 2 middleware functions in one post

有没有办法像这样使用2个中间件函数:

route.post('/login', auth.isAuthenticated, multer.any(), function(req,res) {
  res.send("bla bla bla");
}

我可以同时使用 auth.isAuthenticatedmulter.any()(用于上传文件)吗?

根据 docs:

,您应该能够传递一组您希望像这样执行的中间件回调

http://expressjs.com/en/4x/api.html#router.METHOD

router.METHOD(path, [callback, ...] callback)

route.post('/login', [auth.isAuthenticated, multer.any()], function(req, res) {
    res.send("bla bla bla");
});

更新:

您可能需要构造所有回调都在数组括号内的位置 []:

route.post('/login', [auth.isAuthenticated, multer.any(), function(req, res) {
    res.send("bla bla bla");
}]);

您也可以考虑使用 app.use() 注册回调,如下所示:

var route = express.Router();

var require = require('multer');
var upload = multer({ dest: '/some/path' });

route.use(auth.isAuthenticated);
route.use(upload.any());

app.use("/login", route);

希望对您有所帮助!