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

371
Visualizações
Express + Typescript: Req.status(200) - El tipo 'Número' no tiene firmas de llamada

Soy bastante nuevo en TypeScript y trato de hacer que un servidor Express funcione con él. Entonces, básicamente estoy tratando de hacer que se ejecute el siguiente código después de obtener datos con axios:

 import express, { Response, Request } from 'express' (...) app.get('/api/mk', async (req: express.Request, res: express.Response) => { await axios .get('http://localhost:8080/rest/kuk/v1/ownerMKKOL/getALL') .then((axiosResponse) => { const { data } = axiosResponse return res.status(200).send(data) }) .catch((err) => err) })

Sin embargo, recibo el siguiente mensaje de error y no puedo entenderlo:

Esta expresión no es invocable. El tipo 'Número' no tiene firmas de llamada. TS2349

¿Tengo que ampliar la interfaz de Response ? Si es así, ¿cómo sería una posible solución?

¡Cualquier ayuda es muy apreciada!

Solución:

Finalmente encontré la solución que básicamente se redujo a un problema con la estructura de mi proyecto:

 Root |-- React App |-- Server | |-- package.json | `-- ... `-- package.json `-- ...

De alguna manera, al ejecutar el comando de compilación desde mi paquete de la React App , aparecería este problema. Reestructuré mi proyecto de la siguiente manera y el problema desapareció:

 Root |-- Server | |-- package.json | |-- express.ts | `-- ... `-- Client |-- package.json `-- ...
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

En su código, está esperando un resultado prometido, pero también está registrando una función de devolución de llamada para un resultado y una devolución de llamada para una falla. Esto también devolverá una promesa, por lo que el código es correcto, pero no está devolviendo el valor y esto genera el error.

Además, mezclar la forma .then().catch() con la sintaxis await no es fácil de leer. Yo cambiaría el código de esta manera:

 app.get('/api/mk', async (req: express.Request, res: express.Response) => { const axiosResponse = await axios .get('http://localhost:8080/rest/kuk/v1/ownerMKKOL/getALL'); const { data } = axiosResponse; return res.status(200).send(data); })

Si se lanza una excepción, se disparará automáticamente y pasará a express: no es estrictamente necesario procesarla, ya que en su código de inicio no está haciendo nada más que lanzarla nuevamente.

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