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

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

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