Это неправильно по нескольким причинам:
Первый:
if (isNaN(id) || id <= 0) {
res.send(400); //return res.send(400);
}
нужно добавить return
, чтобы даже после отправки ответа next()
не вызывался.
Теперь по реальной причине:
В validateId
вы передаете get
функции next
. Поэтому, когда вы звоните по следующему номеру validateId
, вы на самом деле звоните next
из get
, таким образом отправляя управление следующему промежуточному программному обеспечению.
Поэтому вам нужно удалить строку filter.validateId(req,res,next);
из функции get
и добавить ее в качестве второго промежуточного программного обеспечения.
т.
exports.get = async function (req, res, next) {
const db = req.app.get('db');
let id = req.params.id;
let user;
try {
user = await db.models.user.findByPk(id);
} catch (err) {
res.send(400)
}
res.json(user);
};
app.get('/route', validateId, get , (req,res)=>{.. do something })
или
app.get('/route', validateId, get)