Гнездо JS эквивалентно express res.locals - PullRequest
0 голосов
/ 01 мая 2020

Я строю API на основе Nest JS, я не могу найти, как хранить данные из промежуточного программного обеспечения и получать их внутри контроллеров.

С Express я просто делаю:

// middleware
res.locals.foo = 'bar';
next();

// controller
user.foo = res.locals.foo; // 'bar'

С Nest JS свойство Response отсутствует locals, и я не нахожу эквивалента.

1 Ответ

0 голосов
/ 01 мая 2020

Я не уверен, что вы имеете в виду, не имея свойства locals. Nest JS - это обертка вокруг Express или Fastify , в зависимости от вашего адаптера, поэтому в промежуточном программном обеспечении, где у вас есть req, res, next, вы можете сказать res.locals или req.locals, а затем получите доступ к нему в контроллере с помощью @Res() или @Req() соответственно. Единственное, на что следует обратить внимание: если вы используете @Res(), вы потеряете некоторые вещи, например, возможность работать с перехватчиками после запроса и фильтрами исключений, поскольку Nest больше не может гарантировать, что ответ уже не будет отправлен.

...