Mongoose Добавить если к промежуточному программному обеспечению - PullRequest
0 голосов
/ 10 октября 2018

Я не уверен, является ли это ошибкой Mongoose или Nodejs Express?

Я просто хотел бы знать, есть ли способ добавить промежуточное ПО в форме if.Это мой звонок:

app.post(pPath, auth, (req, res) => {
    ...
})

И я просто хотел бы сделать что-то вроде этого:

app.post(pPath, varBoolean ? auth : null, (req, res) => {
    ...
})

Приведенный выше пример не работает.Есть идеи, как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Экспресс-методы не поддерживают нефункциональные обработчики.Как правило, это хорошо, поскольку позволяет обнаруживать проблемы с импортом при запуске приложения.

Этого можно достичь с помощью спреда:

app.post(...[pPath, varBoolean && auth, (req, res) => {
    ...
}].filter(Boolean))
0 голосов
/ 10 октября 2018

Вы должны попробовать использовать app.use, если вы хотите иметь промежуточное ПО на месте.

app.use('/path', (req, res, next) => {
const { test } = req.body;
const { auth } = req.headers;
if(!test) {
return res.status(400).json({message: 'Missing field test'});
}
const validToken = await tokenValidation(auth);
if(!validToken){
return res.status(403).json({message: 'Unauthorized'});
}
next();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...