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

362
Views
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 answers
Answer question

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 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!