các tuyến lồng nhau có thể quản lý ...
Tôi muốn có một ví dụ cụ thể về việc thực hiện các tuyến đường lồng nhau theo cách rất dễ quản lý trong express 4 và đây là kết quả tìm kiếm hàng đầu cho "các tuyến đường lồng nhau". Đây là một API sẽ có nhiều tuyến đường cần được chia nhỏ chẳng hạn.
./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;
Ví dụ lồng nhau trong cấu trúc thư mục
Tôi nhận thấy một số ý kiến về "cấu trúc thư mục lồng nhau". Nó được ngụ ý trong điều này tuy nhiên không rõ ràng vì vậy tôi đã thêm phần bên dưới. Đây là một ví dụ cụ thể về cấu trúc thư mục lồng nhau cho các tuyến đường .
index.js
/api
index.js
/admin
index.js
/users
index.js
list.js
/permissions
index.js
list.js
Đây là một ví dụ chung về cách thức hoạt động của nút. Nếu bạn sử dụng "index.js" trong các thư mục tương tự như cách "index.html" hoạt động trong các trang web cho một thư mục mặc định, điều này sẽ dễ dàng mở rộng quy mô tổ chức của bạn dựa trên đệ quy mà không thay đổi điểm nhập thành mã. "Index.js" là tài liệu mặc định được truy cập khi sử dụng yêu cầu trong một thư mục.
nội dung của index.js
const express = require('express');
const router = express.Router();
router.use('/api', require('./api'));
module.exports = router;
nội dung của /api/index.js
const express = require('express');
const router = express.Router();
router.use('/admin', require('./admin'));
module.exports = router;
nội dung của /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;
nội dung của /api/admin/users/index.js
const express = require('express');
const router = express.Router();
router.get('/', require('./list'));
module.exports = router;
Có một số vấn đề DRY ở đây có thể nhưng nó cho vay chính nó để đóng gói các mối quan tâm.
FYI, gần đây tôi đã tham gia vào Actionhero và nhận thấy nó có đầy đủ tính năng w / socket và nhiệm vụ, giống như một khung công tác thực sự tất cả trong một mô hình REST trên đầu. Bạn có lẽ nên kiểm tra nó qua việc đi khỏa thân w / express.