hola desde hace un par de dias tengo este reto
Estoy construyendo con NestJS ( https://nestjs.com/ )
Quiero tener una ruta que solo escuche cuando no tenga una extensión de archivo.
Así por ejemplo
localhost:3000 -> good localhost:3000/ -> good localhost:3000/test -> good localhost:3000/test.txt -> ignore localhost:3000/css/mycss.css -> ignoreAdemás, cuando la ruta es válida, quiero saber el slug en los parámetros.
por ejemplo
localhost:3000/test Get('/:slug') params.slug = test¿Puede alguien ayudarme?
NestJs no admite RegExp en las rutas del controlador. Solo acepta cadenas o una matriz de cadenas. Por lo tanto, no puede establecer patrones sofisticados allí.
Los caracteres ?, +, * y () se pueden usar en una ruta de ruta y son subconjuntos de sus contrapartes de expresiones regulares. El guión (-) y el punto (.) se interpretan literalmente mediante rutas basadas en cadenas.
Sin embargo, puede obtener el valor de la solicitud y verificarlo manualmente. Si de esta manera está bien para usted, intente algo como esto
import {Controller, Get, Req} from '@nestjs/common'; import {Request} from 'express'; @Controller() export class AppController { @Get(':slug') test(@Req() request: Request) { const pattern = /[\w]+[.]+[\w]+/; if (pattern.test(request.url)) return 'bad'; return 'good'; } } Modifica el patrón como necesites. El ejemplo actual considera something.txt como malo (cualquier cosa, incluido el punto, es malo) pero something como un buen patrón.