Упростите локальные переменные точки зрения
Я перехожу с 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 не определены!