Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

122
Views
Pase la instancia Fastify a los controladores en un nivel superior

En lugar de pasar la fastify instance a cada función, ¿cómo puedo pasarla a un nivel superior solo una vez para que esté disponible para todas las funciones en el controlador?

 // route file import { FastifyPluginAsync } from 'fastify' import RootController from '../root.controller' const root: FastifyPluginAsync = async (fastify, opts): Promise<void> => { fastify.get('/', RootController.index(fastify)) fastify.get('/show', RootController.show(fastify)) } export default root
 // controller file import { FastifyInstance, FastifyRequest, FastifyReply } from 'fastify' export default { index: (fastify: FastifyInstance) => async (request: FastifyRequest, reply: FastifyReply) => { const hugs = fastify.someSupport() reply.send({ status: 'ok', love: hugs }) }, show: (fastify: FastifyInstance) => async (request: FastifyRequest, reply: FastifyReply) => { const hugs = 'extra ' + fastify.someSupport() reply.send({ status: 'ok', love: hugs }) } }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

La respuesta es una simple refactorización mecánica usando cierres:

 // controller file import { FastifyInstance, FastifyRequest, FastifyReply } from 'fastify' export default async function installRootController(fastify: FastifyInstance, opts): Promise<void> { fastify.get('/', async (request: FastifyRequest, reply: FastifyReply) => { const hugs = fastify.someSupport() reply.send({ status: 'ok', love: hugs }) }); fastify.get('/show', async (request: FastifyRequest, reply: FastifyReply) => { const hugs = 'extra ' + fastify.someSupport() reply.send({ status: 'ok', love: hugs }) }); };

Las funciones internas (los controladores asíncronos para / y /show ) tienen acceso a fastify porque es accesible desde el alcance léxico de la función circundante. Esto le permite encapsular "controladores" completos como complementos Fastify, listos para instalar así:

 fastify.register(installRootController);

Tenga en cuenta que el archivo "rutas" ahora no tiene ningún uso.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!