mogę skonfigurować dwie trasy takie jak taCorrect/Concisest sposób routery gniazdo Express,
index.js
var express = require('express');
var app = express();
var router = express.Router();
const PORT = 3001;
app.get('/', function(req, res){
res.send('hello app');
});
app.use('/routes', require('./routes'));
app.listen(PORT, function(){
console.log('listening on port:', PORT);
});
./routes/index.js
var express = require('express');
var app = express();
var router = express.Router();
router.use('/sub1', require('./sub1'));
router.use('/sub2', require('./sub2'));
module.exports = router;
./routes/sub1.js
var express = require('express');
var app = express();
var subOneRouter = express.Router();
subOneRouter.get('/', function(req, res){
res.json({route: 'sub1-base'});
});
subOneRouter.get('/:id', function(req, res){
res.json({'route': 'sub1-base', 'id': req.params.id});
});
module.exports = subOneRouter;
dla zwięzłości ./routes/sub2.js wygląda dokładnie tak samo, ale jego zmienne są nazwane subTwo
Jaka jest najkrótsza droga do gniazda sub2 pod SUB1? W ciągu index.js Próbowałem
var subOne = router.use('/sub1', require('./sub1'));
subOne.use('/sub2', require('./sub2'));
Ale to nie działa w ogóle. W ciągu index.js
router.use('/sub1/:id/sub2', require('./sub2'));
//localhost:3000/sub1/123/sub2/456 => { "route": "sub2-base","id":"456"}
działa, ale wydaje się to może dostać rozwlekły i trudny do utrzymania, jeśli struktura dostał znacznie dłużej. Jaki jest najlepszy sposób na zrobienie tego? Czy istnieje krótszy sposób ich zagnieżdżenia?
Twój adres URL powinien być localhost: 3000/routes/... aw twoim sub1.js musisz zdefiniować trasę taką jak ten 'subOneRouter. get ('/: id/sub2', require ('./ sub2.js'); ', a URL będzie localhost: 3000/routes/sub1/123/sub2 – Molda