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

511
Views
¿Por qué la función Router() Express regresa sin definir?

Estoy usando TypeScript y Express para crear una API que sigue los principios de Clean Architecture. Separé cada ruta de mi aplicación en una carpeta y luego las importé todas a un archivo index.ts , fusionando cada una dentro de un enrutador único y exportando lo mismo. Mi problema es que la importación de este archivo único está devolviendo undefined .

Creo que no es un problema de mi código en sí, ya que TypeScript puede inferir correctamente el tipo de archivo importado y no informa ningún error durante el desarrollo. El único error que obtengo ocurre cuando intento ejecutar el código:

TypeError: app.use() requiere una función de middleware

Este es el fragmento de código que causa el error:

 // expressInstance.ts --> Imported by the "server.ts" file, where listening the server happens import express from "express"; import cors from "cors"; import { router } from ".."; // File with all the routes const expressInstance = express(); expressInstance.use(express.urlencoded({extended: false})); expressInstance.use(express.json()); expressInstance.use(cors()); expressInstance.use(router); // Line where the error appears export { expressInstance };

Y este es el código del archivo del router importado:

 // index.ts import { Router } from "express"; import { userRouter } from "./user.routes"; import { postRouter } from "./post.routes"; const router = Router(); router.use("/user", userRouter); router.use("/post", postRouter); export { router };

Leí en otra pregunta que el retorno undefined solía ocurrir en la versión 3 de Express, pero uso la versión 4.17.13 , por lo que creo que esta no es la causa del problema. De hecho, no tengo ni idea de lo que podría ser. Traté de ver el contenido del enrutador usando console.log(router) en el archivo index.ts (antes de que expressInstance.ts lo importara), pero no funcionó porque el código ni siquiera se ejecutó.

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Intenta agregar una ruta a tu .use()

p.ej:

 expressInstance.use('/users', router); // in the case you wanted the router to be for users
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!