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

163
Vistas
¿Cómo hacer pedidos express modulares?

Quiero reutilizar un fragmento de código que me ahorrará MUCHO TIEMPO. Quiero que las solicitudes POST, DELETE, PATCH y GET sean modulares.

Tengo un archivo js que define la ruta básica para cada módulo (mod) y dado que estoy usando 23 módulos, que funcionarán de la misma manera, me gustaría tomar este atajo. Aquí está el "Archivo de ruta básica"

 let route = ""; let mod = undefined; router.get("/" + route, verify, async (req, res) => { const id = req.query.id; let data; if (id) { data = await mod.findOne({_id: id}); } else { data = await mod.find({}); } if (data) return res.status(200).json({status: 404, message: "The data can't be found!", data: []}); else return res.status(200).json({status: 200, message: "Found data!", data: data}); }); router.post("/" + route, verify, async (req, res) => { let data = new mod(req.body); data = await data.save(); if (data) return res.status(200).json({status: 404, message: "The data can't be found!", data: []}); else return res.status(200).json({status: 200, message: "Found data!", data: data}); }); router.patch("/" + route, verify, async (req, res) => { const id = req.query.id; let data; if (id) { data = await mod.updateOne({_id: id}, {$set: req.body}); } if (!data) return res.status(200).json({status: 404, message: "The data can't be found!", data: []}); else return res.status(200).json({status: 200, message: "Found data and updated!", data: data}); }); router.delete("/" + route, verify, async (req, res) => { const id = req.query.id; let data; if (id) { data = await mod.deleteOne({_id: id}); } if (!data) return res.status(200).json({status: 404, message: "The data can't be found!", data: []}); else return res.status(200).json({status: 200, message: "Found data and deleted!", data: data}); }); module.exports = function(proute, pmodule){ route = proute; module = pmodule; return router; };

Y en uno de los otros archivos del enrutador le digo a cada ruta qué módulo está usando y cómo se llama.

 router.use(yukir("disc-server", DiscServer)); router.use(yukir("disc-user", User)); router.use(yukir("autochannel", AutoChannel));

El caso es que no me sale ningún error sino un error 404 por lo que no se encuentra la ruta, lo cual es muy raro. ¿Puede alguien ayudarme con eso?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Su problema es que las cadenas en Javascript se pasan por valor, no se pasan por referencia, por lo que en el momento en que se realizan las llamadas a los métodos del enrutador, route y mod son la cadena vacía e indefinida respectivamente. El enrutador funciona, por lo tanto, siempre registra la ruta en "/" . Envuelva su código de definición de ruta dentro de la función de fábrica y estará bien.

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