Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

343
Visualizações
Regex no coincide en la ruta Fastify

Decidí portar mi código de Express a Fastify. Entonces, esto es un gran dolor de cabeza cuando no hemos establecido las pruebas adecuadas.

De todos modos, la ruta se declara como:

fastify.get(/^\/(donations|skills|blogs)/, async function (req, reply) {

Estaba funcionando en Express, pero en Fastify devuelve 404. Estoy seguro de que tiene que ver con la expresión regular en sí, ya que otras rutas dentro del mismo complemento/archivo/funcionan correctamente.

Se supone que debe coincidir con /listings/donations o listings/skills ... sabiendo que /listings es el prefijo al adjuntar todo el complemento de enrutamiento a la aplicación.

Regex trabajando

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Para responder a su respuesta, no puede proporcionar un objeto RegExp a Fastify. Debe establecer un parámetro de ruta dentro de RegExp:

 const fastify = require('fastify')({ logger: true }) const handler = async (request, reply) => { return { hello: request.params.foo } } fastify.get('/listings/:foo(^(donations|skills|blogs)$)', handler) fastify.listen(8080)

(Creo que debería recibir un error para su configuración, así que abrí un problema )

Como sugerencia, no debe hacerlo: encontrará una caída en el rendimiento debido a esta expresión regular. Te sugiero que lo escribas así:

 fastify.get('/listings/donations)', handler) fastify.get('/listings/skills)', handler) fastify.get('/listings/blogs', handler)

Deja que el router haga su trabajo.

Aquí está la comparación de rendimiento:

con expresión regular

 ┌───────────┬─────────┬─────────┬─────────┬─────────┬──────────┬─────────┬─────────┐ │ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │ ├───────────┼─────────┼─────────┼─────────┼─────────┼──────────┼─────────┼─────────┤ │ Req/Sec │ 68863 │ 68863 │ 75327 │ 75839 │ 73678.55 │ 2791.45 │ 68860 │ ├───────────┼─────────┼─────────┼─────────┼─────────┼──────────┼─────────┼─────────┤ │ Bytes/Sec │ 12.5 MB │ 12.5 MB │ 13.7 MB │ 13.8 MB │ 13.4 MB │ 507 kB │ 12.5 MB │ └───────────┴─────────┴─────────┴─────────┴─────────┴──────────┴─────────┴─────────┘

Sin expresión regular

 ┌───────────┬─────────┬─────────┬─────────┬─────────┬──────────┬─────────┬─────────┐ │ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │ ├───────────┼─────────┼─────────┼─────────┼─────────┼──────────┼─────────┼─────────┤ │ Req/Sec │ 86015 │ 86015 │ 95423 │ 95551 │ 94350.55 │ 2681.36 │ 85954 │ ├───────────┼─────────┼─────────┼─────────┼─────────┼──────────┼─────────┼─────────┤ │ Bytes/Sec │ 15.6 MB │ 15.6 MB │ 17.4 MB │ 17.4 MB │ 17.2 MB │ 491 kB │ 15.6 MB │ └───────────┴─────────┴─────────┴─────────┴─────────┴──────────┴─────────┴─────────┘
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda