Вы должны быть в состоянии передать массив промежуточного программного обратных вызовов вы хотели бы казнили, как это в соответствии с 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);
Надеемся что помогает!
но что, если я просто хотел использовать промежуточное ПО только для 1 маршрута? могу ли я справиться с этим с помощью route.use (auth.isAuthenticated); Я имею в виду, что если я это сделаю, все мои маршруты будут связаны с этим промежуточным программным обеспечением, иначе он будет другим? –
Вы правы, '.use()' будет для ** всех ** HTTP-глаголов, поэтому он может быть не идеальным/действительным для конкретных ситуаций. Я обновил свой ответ, чтобы показать, как он применим только к маршруту «/ login». В качестве примера я привел бы все HTTP-глаголы для маршрута «/ login» при использовании 'use()'. Благодаря! –
очень хорошо спасибо –