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

111
Views
Mejores prácticas para la arquitectura de rutas

Estoy tratando de configurar rutas para mi backend. Tengo dos formas en las que he intentado configurar estas rutas, y me pregunto cuál se ajusta a las mejores prácticas (¿o ninguna?). Las diferencias son mínimas, pero me encantaría saber si hay un "mejor" objetivo aquí.

Aquí están mis intentos:

 const express = require("express"); const router = express.Router(); const flashcardController = require('../controllers/flashcardController'); router.get('/', flashcardController.readFlashcard); router.post('/', flashcardController.createFlashcard); router.patch('/', flashcardController.updateFlashcard); router.delete('/', flashcardController.deleteFlashcard); module.exports = router

contra

 const express = require("express"); const router = express.Router(); const flashcardController = require('../controllers/flashcardController'); module.exports = (app) => { router.get('/api/flashcard', flashcardController.readFlashcard); router.post('/api/flashcard', flashcardController.createFlashcard); router.patch('/api/flashcard', flashcardController.updateFlashcard); router.delete('/api/flashcard', flashcardController.deleteFlashcard); app.use('/', router); };

Por supuesto, mi archivo app.js (punto de entrada para mi backend) deberá codificarse de manera ligeramente diferente para cada una de estas opciones.

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

0

Si cree que el trabajo de un enrutador es solo manejar algunas solicitudes que recibe y es el trabajo del código de llamada colocar el enrutador en cualquier ruta en la que el código de llamada quiera que opere, entonces solo su primera opción servirá. que. Esto permitiría que una persona que llama use estas rutas en cualquier ruta que desee.

Si desea que el módulo que implementa las rutas sea completamente autosuficiente e instale las rutas en la ruta en la que quiere que estén, solo la segunda opción lo hace.

Diría que el esquema "usual" y más "flexible" es el primero donde el llamador coloca las rutas en el camino donde las quiere. Pero eres libre de elegir el estilo que quieras.

La segunda opción no se implementa de manera particularmente eficiente por lo que podría mejorarse. No se necesita ningún enrutador, ya que las rutas se pueden instalar directamente en el objeto de la app . Y se puede evitar repetir /api/flashcard varias veces.

Por ejemplo, la segunda opción podría ser esta:

 const controller = require('../controllers/flashcardController'); const routePath = '/api/flashcard'; module.exports = (app) => { app.get(routePath, controller.readFlashcard); app.post(routePath, controller.createFlashcard); app.patch(routePath, controller.updateFlashcard); app.delete(routePath, controller.deleteFlashcard); };

O incluso solo esto:

 const controller = require('../controllers/flashcardController'); module.exports = (app) => { app.route('/api/flashcard') .get(controller.readFlashcard) .post(controller.createFlashcard) .patch(controller.updateFlashcard) .delete(controller.deleteFlashcard); };

Y, el primero podría simplificarse a esto:

 const router = require("express").Router(); const controller = require('../controllers/flashcardController'); router.route('/') .get(controller.readFlashcard) .post(controller.createFlashcard) .patch(controller.updateFlashcard) .delete(controller.deleteFlashcard); module.exports = 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!