typescript - ¿Hay alguna manera de obtener interfaces de tipos para request, response en Nest.js con Fastify?
Estoy aprendiendo Nest.js y al principio de la documentación leí que puedo usarlo no solo con express sino también con fastify, así que configuré mi primer proyecto con fastify. Luego empecé a leer sobre controladores y encontré un problema. Por ejemplo, si quiero obtener más información sobre la solicitud de un usuario, puedo usar ligeramente @Req req: Request y este req es del tipo Request, y es muy fácil obtener esta interfaz si es una aplicación basada en express, solo tienes que instalar @types/express y luego puedes importar la interfaz Request desde express. Pero, ¿cómo (si es posible) puedo obtener la interfaz Request si estoy usando fastify?
Respuesta #1
Así que afirmo que los tipos para fasify ya están dentro de los proyectos Nest porque provienen de @types/node. Si quieres usar interfaces de fastify, solo impórtalas desde el módulo fastify. Ejemplo:
import { Controller, Get, Query, Req } from '@nestjs/common';
import { AppService } from './app.service';
import { DefaultQuery } from 'fastify';
@Controller('math')
export class AppController {
constructor(private readonly appService: AppService) {}
@Get('add')
addTwoNumbers(@Query() query: DefaultQuery): number {
return this.appService.addTwoNumbers(query.value);
}
}
Si quieres leer más sobre los tipos en fastify, visita este enlace: Tipos de Fastify
Respuesta #2
Instala el paquete fastify e importa FastifyRequest y FastifyReply desde allí:
import { Controller, Get, Req, Res } from '@nestjs/common';
import { FastifyReply, FastifyRequest } from 'fastify';
@Controller('feature')
export class FeatureController {
@Get()
async handler(
@Req() req: FastifyRequest,
@Res() reply: FastifyReply,
) { }
}
