管理可能なネストされたルート...
Express 4で非常に扱いやすい方法でネストされたルートを実行する具体的な例が必要でした。これが「エクスプレスでネストされたルート」の上位の検索結果でした。たとえば、分割する必要がある多くのルートを持つAPIがあります。
./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」をディレクトリのデフォルトのWebページでの「index.html」の動作と同様に使用すると、エントリポイントをコードに変更せずに、再帰に基づいて組織を簡単に拡張できます。「index.js」はrequireを使用するときにアクセスされるデフォルトのドキュメントですディレクトリでを。
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問題がある可能性がありますが、懸念のカプセル化には適しています。
ちなみに、最近私はactionheroに入り、ソケットとタスクを備えたフル機能を備えていることがわかりました。それは、真のフレームワークオールインワンがRESTパラダイムを一変させるようなものです。エクスプレスでネイキッドになることをチェックするべきでしょう。