Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

304
Vistas
Error en la configuración del enrutador Express: Router.use () requiere una función de middleware pero tiene un indefinido

En primer lugar, solo diré que conozco casi todas las preguntas que se hacen en este sitio bajo este título.

Las soluciones allí eran bastante obvias y ya las había hecho yo (sin éxito) o solo ayudaron para esos casos específicos y desafortunadamente no funcionaron en mi caso.


Ahora, para el problema:

Estoy tratando de crear una ruta que manejará una solicitud de obtención y una solicitud de publicación que se envían a la ruta 'puntos suspensivos'. Estas solicitudes deben recibir y enviar datos desde y hacia una base de datos SQL.

El problema es que por alguna razon el router no esta listo para sacar estas funciones y me da el error en el titulo:

Router.use () requiere una función de middleware pero tiene un valor indefinido

Aquí está mi código:

Este código es del archivo dat.js. su propósito es simplemente acceder a la base de datos SQL.

 import { Sequelize } from "sequelize"; export const sequelize = new Sequelize('TheDataBaseName', 'TheUser', 'ThePassword', { host: 'localhost', dialect: 'mssql' });

Este código es del archivo: controller.js . su finalidad es gestionar las peticiones y cargar los datos.

 import { sequelize } from "../dat"; export const sendEllipses = async (req, res, next) => { try { const ellipses = await getEllipsesFromJson(); return res.send(ellipses); } catch (e) { console.log(e); } }; export const addNewEllipse = async (req, res, next) => { const { body: obj } = req; let newEllipse; try { if (Object.keys(obj) !== null) { logger.info(obj); newEllipse = await sequelize.query( `INSERT INTO [armageddon].[dbo].[ellipses] (${Object.keys( obj ).toString()}) values (${Object.values(obj).toString()})` ); } else { console.log("the values are null or are empty"); } return res.send(newEllipse); } catch (error) { console.log(error); } };

Este código está en el archivo: routers.js . su propósito es definir la ruta

 import Router from "express"; import { sendEllipses } from "../ellipses.controller"; import { addNewEllipse } from "../ellipses.controller"; const router = Router(); export default router.route("/ellipses").get(sendEllipses).post(addNewEllipse);

Este código es del archivo: app.js. Aquí es donde todo sucede realmente.

 import { router } from "../routers"; import express from "express"; app.use('/api', router); app.listen(5000, () => { console.log("server is runing on port 5000") });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Necesitas exportar el enrutador

 const router = Router(); router.route("/ellipses").get(sendEllipses).post(addNewEllipse) export default router

Ahora importe el enrutador:

 import routes from "../router.js"; app.use('/api', routes);

También se menciona en los documentos: https://expressjs.com/de/guide/routing.html#express-router

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda