Изменить или сохранить данные в объекте запроса в fastify - PullRequest
0 голосов
/ 29 января 2019

Я использую nestjs для создания REST API.

У меня есть промежуточное ПО, которое загружает данные из кэша Redis и должно сохранить их в объекте запроса для доступа к ним в функции контроллера.

Если я использую экспресс как движок, он работает, но с fastify он не работает.Данные не определены в функции контроллера.

Код выглядит так:

function mymiddleware(req, res, next) => {
    req.data = {...};
    next();
};

1 Ответ

0 голосов
/ 29 января 2019

это простой рабочий пример:

const fastify = require('fastify')({ logger: true })

fastify.use(function (req, res, next) {
  console.log('middy')
  req.data = { hello: 'world' }
  next();
})

fastify.get('/', (req, res) => {
  res.send(`hello ${req.raw.data.hello}`)
})

fastify.listen(3000)

Я думаю, что ваша проблема связана с объектом req: в промежуточном программном обеспечении (зарегистрированном с помощью .use вы получите стандартный запрос Node.jsвместо расширенного HTTPRequest в обработчике fastify.

Таким образом, вы можете получить доступ к низкоуровневому Http-запросу с полем .raw.

...