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.