प्रबंधनीय नेस्टेड मार्ग ...
मैं एक्सप्रेस 4 में बहुत प्रबंधित तरीके से नेस्टेड रूट करने का एक विशिष्ट उदाहरण चाहता था और यह "एक्सप्रेस में नेस्टेड रूट" के लिए शीर्ष खोज परिणाम था। यहां एक एपीआई है जिसमें कई मार्ग होंगे जिन्हें उदाहरण के लिए तोड़ना होगा।
./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;
फ़ोल्डर संरचना में नेस्टिंग उदाहरण
मैंने "नेस्टिंग फ़ोल्डर संरचना" पर कुछ टिप्पणियां देखीं। यह इसमें निहित है, हालांकि स्पष्ट नहीं है इसलिए मैंने नीचे अनुभाग जोड़ा है। यहां मार्गों के लिए नेस्टेड फ़ोल्डर संरचना का एक विशिष्ट उदाहरण है ।
index.js
/api
index.js
/admin
index.js
/users
index.js
list.js
/permissions
index.js
list.js
यह नोड कैसे काम करता है इसका एक सामान्य उदाहरण है। यदि आप फ़ोल्डर में "index.js" का उपयोग उसी तरह करते हैं, जैसे "index.html" एक निर्देशिका डिफ़ॉल्ट के लिए वेब पेजों में कैसे काम करता है, तो अपने एंट्री पॉइंट्स को कोड में बदले बिना अपने संगठन को पुनरावृत्ति के आधार पर स्केल करना आसान होगा। "index.js" एक निर्देशिका में आवश्यकता का उपयोग करते समय एक्सेस किया गया डिफ़ॉल्ट दस्तावेज़ है ।
index.js की सामग्री
const express = require('express');
const router = express.Router();
router.use('/api', require('./api'));
module.exports = router;
/api/index.js की सामग्री
const express = require('express');
const router = express.Router();
router.use('/admin', require('./admin'));
module.exports = router;
/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;
/api/admin/users/index.js की सामग्री
const express = require('express');
const router = express.Router();
router.get('/', require('./list'));
module.exports = router;
संभवतया यहां कुछ DRY मुद्दे हैं लेकिन यह चिंताओं के एनकैप्सुलेशन के लिए अच्छी तरह से उधार देता है।
FYI करें, हाल ही में मैं एक्शनरियो में आया और पाया कि यह पूर्ण विशेषताओं वाले w / sockets और कार्य हैं, जो एक सच्चे ढांचे की तरह है, जिसमें सभी अपने सिर पर REST प्रतिमान को पलटते हैं। आपको संभवतः नग्न w / एक्सप्रेस पर जाने की जाँच करनी चाहिए।