Pentru majoritatea aplicațiilor Express, este standard să creați un singur fișier care să conțină toate rutele dvs. Solicitați acest fișier în app.js și includeți o declarație app.use care vizează orice solicitare către „/”șiești gata.
const express = require('express'); const routes = require('./routes/index'); const app = express(); app.use('/', routes);
Această abordare funcționează pentru majoritatea proiectelor, dar poate duce la o listă lungă de rute. Fiecare aruncat unul după altul și fiecare urmând același construct:
router.get('/', ....); router.get('/bears/habitats', ...); router.post('/panthers', ...) router.get('/lions', ...); ...
O abordare cu mai multe module este decuplarea instrucțiunii app.usede la app.js.
Mai degrabă decât:
app.use('/', routes);
unde rutele este un obiect exportat al tuturor rutelor dvs., exportați o funcție care acceptă aplicația Express ca parametru. Apoi, puteți solicita în funcție, transmiteți-o aplicația și lăsați acea funcție să implementeze toate instrucțiunile app.use.
Cum arată asta în practică?
Creați un fișier index al routerului care apelează o instrucțiune app.use pentru fiecare parte din logica URL a aplicației dvs.
// routes/index.js const api = require('./api'); module.exports = function(app) { app.use('/api', api); };
Unde arată api.js:
// routes/api.js const express = require('express'); const apiRoutes = express.Router(); apiRoutes.get('/',...); apiRoutes.get('/Jaguars',...); module.exports = apiRoutes;
Apoi, în app.js necesită în traseu index.js transmiterea aplicației ca parametru pentru funcția returnată:
// app.js require('./routes/index')(app);
Cu aceasta, orice cereri către /api pot fi gestionate în fișierul dedicat de rutare api și orice solicitări către un alt grup de puncte finale pot fi izolate în propriul fișier.