Мой код выглядит следующим образом:
const myMiddleware = () => {
return (req, res, next) => {
...
console.log(res);// this outputs only the locals set in a previous middleware
res.send('not working');//send is not a function
}
}
и его использование:
router.post('/route', previousMiddleware(), myMiddleware(), (req, res) => {
doSomeStuff;
})
Предыдущее промежуточное ПО выполняет запрос https, устанавливает результаты в res.locals, затемmyMiddleware выполняет другой запрос в другом месте, используя данные из предыдущего промежуточного программного обеспечения.Мне нужно выйти из всего маршрута, если есть ошибка в промежуточном программном обеспечении.Он работает в первой (предыдущей) функции промежуточного программного обеспечения, но не во второй.Когда я выхожу из системы res
в предыдущем промежуточном программном обеспечении, даже после установки локальных настроек, он дает мне весь объект методом .send
.Если я зарегистрирую res
в первой строке функции myMiddleware()
(или где-либо еще), res
- это объект с единственным свойством объекта, равным .locals
из предыдущего промежуточного программного обеспечения:
{ locals: { key: value } }
Я трижды проверил, и у меня нет порядка req, res, next
, перепутанного.
Есть мысли о том, почему и как я могу это исправить?