Упростите локальные переменные точки зрения

Я перехожу с Express.js на Fastify. Мне нужно сделать это быстро, поэтому использовать только API пока невозможно. Еще не написали приложение React.

Моя проблема: я использую точку зрения и не знаю, как передать локальную переменную всем запросам. В экспрессе есть что-то вроде

app.use(function (req, res, next)
{
 res.local.new_notifications = 50;
})

и я могу получить его в движке шаблонов на каждой странице, например

<%= new_notifications %>

Есть ли что-то подобное в Fastify + point-of-view?

1 ответ

Вы можете, я не уверен, новая это реализация или нет, поскольку вы запросили решение более 1 года назад, это для будущих зрителей.

Вам просто нужно добавить объект .locals и прикрепить к нему все, что угодно, доступное в вашем движке.

Это из документации:

Если вы хотите предоставить данные, которые будут зависеть от запроса и будут доступны во всех представлениях, вам необходимо добавить локальные переменные свойств для объекта ответа, как в примере ниже:

      fastify.addHook('preHandler', function (request, reply, done) {
  reply.locals = {
    text: getTextFromRequest(request) // it will be available in all views
  }

  done()
})

Обязательно создайте объект с назначением {}, поскольку locals не определены!

Другие вопросы по тегам