Мне нужно получить доступ к экземпляру fastify из файла обработчика. Совершенно не помню, как мне это делать.
Показатель:
fastify.register(require('./routes/auth'), {
prefix: '/auth'
})
Маршруты / авт :
module.exports = function(fastify, opts, next) {
const authHandler = require('../handlers/auth')
fastify.get('/', authHandler.getRoot)
next()
}
Обработчик / аутентификации :
module.exports = {
getRoot: (request, reply) {
// ACCESS FASTIFY NAMESPACE HERE
reply.code(204).send({
type: 'warning',
message: 'No content'
})
}
}
Спасибо!
1
HypeWolf
23 Окт 2018 в 04:39
2 ответа
Лучший ответ
Маршруты / авт :
module.exports = function(fastify, opts, next) {
const authHandler = require('../handlers/auth')(fastify)
fastify.get('/', authHandler.getRoot)
next()
}
Обработчик / аутентификации :
module.exports = function (fastify) {
getRoot: (request, reply) {
fastify;
reply.code(204).send({
type: 'warning',
message: 'No content'
})
}
}
1
Anant Kaushik
13 Ноя 2018 в 14:05
< Сильный > Update :
вы можете использовать ключевое слово this
для доступа к экземпляру fastify в ваших контроллерах, которые определены с ключевым словом function
. Контроллеры стрелочных функций не работают.
Вы также можете украсить экземпляр fastify по объекту запроса или ответа:
index
:
fastify.decorateRequest('fastify', fastify);
// or
fastify.decorateReply('fastify', fastify);
fastify.register(require('./routes/auth'), {
prefix: '/auth'
});
Затем в вашем handler/auth
:
module.exports = {
getRoot: (request, reply) {
// ACCESS FASTIFY NAMESPACE HERE
request.fastify
// or
reply.fastify
reply.code(204).send({
type: 'warning',
message: 'No content'
});
}
};
0
Milad Abbasi
2 Фев 2020 в 10:17
Похожие вопросы
Новые вопросы
handler
В шаблоне Observer обработчик события - это функция или метод, вызываемый наблюдателем, который прослушивает событие, отправленное субъектом. Также известен как слушатель событий.