在一个帖子中使用2个中间件功能

时间:2017-02-15 15:41:24

标签: node.js express middleware

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

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

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

1 个答案:

答案 0 :(得分:5)

您应该能够根据docs传递一系列您希望按此执行的中间件回调:

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

  

router.METHOD(路径,[回调,...]回调)

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);

希望这有帮助!