Я запутался с next();
Я прочитал этот пост , который, по сути, говорит, что передает управление следующему маршруту. В моем коде ниже наличие next();
, где оно находится, заставляет меня получить «Невозможно установить заголовки после того, как они отправлены клиенту». Однако, если я закомментирую это, а затем восстановлю предложение else
в моем операторе if, он будет работать правильно как при передаче неверного empID, так и при правильном. Я надеюсь, что кто-то может объяснить, что именно происходит? Почему положение next()
имеет значение? Кажется, это будет так или иначе?
Я пытаюсь сделать то, что происходит в этом посте , который добавляет значение, скажем, req.user
, но я не смог заставить это работать вообще, поэтому я ' Я пытаюсь метод, который я здесь.
let checkEmp = (req, res, next) => {
db.get("select * from Employee where id = $id", {$id: req.empID},
(err, row) => {
if (err || row === undefined) {
res.status(404).send();
// } else {
// next();
}
});
next();
};
// get all timesheets
timesheetRouter.get("/", getParams, checkEmp, (req, res, next) => {
if (req.empID) {
db.all("select * from Timesheet where employee_id = $id", {$id: req.empID},
(err, rows) => {
if (err) {
next(err);
} else {
return res.status(200).send({timesheets: rows});
}
});
} else {
return res.status(404).send("Nothing to see here");
}
});