percorsi nidificati gestibili ...
Volevo un esempio specifico di fare percorsi nidificati in modo molto gestibile in express 4 e questo era il risultato di ricerca principale per "percorsi nidificati in express". Ecco un'API che avrebbe molte rotte che dovrebbero essere spezzate per esempio.
./index.js:
var app = require('express')();
// anything beginning with "/api" will go into this
app.use('/api', require('./routes/api'));
app.listen(3000);
./routes/api/index.js:
var router = require('express').Router();
// split up route handling
router.use('/products', require('./products'));
router.use('/categories', require('./categories'));
// etc.
module.exports = router;
./routes/api/products.js:
var router = require('express').Router();
// api/products
router.get('/', function(req, res) {
res.json({ products: [] });
});
// api/products/:id
router.get('/:id', function(req, res) {
res.json({ id: req.params.id });
});
module.exports = router;
Esempio di nidificazione nella struttura delle cartelle
Ho notato alcuni commenti su "annidamento della struttura delle cartelle". È implicito in questo tuttavia non ovvio, quindi ho aggiunto la sezione seguente. Ecco un esempio specifico di una struttura di cartelle nidificata per le route .
index.js
/api
index.js
/admin
index.js
/users
index.js
list.js
/permissions
index.js
list.js
Questo è più un esempio generale di come funziona il nodo. Se si utilizza "index.js" in cartelle in modo simile al modo in cui "index.html" funziona nelle pagine Web per impostazione predefinita di una directory, sarà facile ridimensionare l'organizzazione in base alla ricorsione senza modificare i punti di ingresso in codice. "index.js" è il documento predefinito a cui si accede quando si utilizza un requisito in una directory.
contenuto di index.js
const express = require('express');
const router = express.Router();
router.use('/api', require('./api'));
module.exports = router;
contenuti di /api/index.js
const express = require('express');
const router = express.Router();
router.use('/admin', require('./admin'));
module.exports = router;
contenuti di /api/admin/index.js
const express = require('express');
const router = express.Router();
router.use('/users', require('./users'));
router.use('/permissions', require('./permissions'));
module.exports = router;
contenuti di /api/admin/users/index.js
const express = require('express');
const router = express.Router();
router.get('/', require('./list'));
module.exports = router;
Ci sono alcuni problemi di ASCIUTTA qui forse ma si presta bene all'incapsulamento delle preoccupazioni.
Cordiali saluti, recentemente sono entrato in Actionhero e l'ho trovato pieno di funzionalità con socket e compiti, più come un vero framework all-in-one che lancia il paradigma REST sulla sua testa. Probabilmente dovresti dare un'occhiata su andando nudo con express.