すべてのルーティング設定を1つのオブジェクトに設定できますか?基本的には、すべてのルートを含むオブジェクトをエクスポートするrouting.jsというファイルがあります。すべてのルートにexpress.get()を使用するのは普通です。expressjsルーティング設定オブジェクト?
2
A
答えて
2
私は実際に私のルートのすべてのファイルを保持するフォルダを持っています(私はそれらをオブジェクトごとに分割しています)。私はまた、私のコントローラもファイルに分けています。ルートファイルは、次のようになります。
/**
* Module dependencies.
*/
var controller = require('../controllers/index');
/**
* The API root for this object.
*/
var root = '/';
/**
* Route definitions.
*/
var routes = function (app) {
// get index
app.get(root, controller.getIndex);
};
/**
* Exports.
*/
module.exports = routes;
その後、私のapp.jsファイルで、私は自動的に私のルートのすべてのファイルをアップロードし、500と404のルートを設定した。この操作を行います。
fs.readdir(__dirname + '/routes', function (err, files) {
if (err) throw err;
files.forEach(function (file) {
require('./routes/' + file)(app);
});
/**
* 500 page.
*/
app.use(function (err, req, res, next) {
if (err && err.status === 404) {
return next();
}
res.statusCode = 500;
res.render('404.html', {status: 500, url: req.url, error: ': ' + err.message});
});
/**
* 404 page.
*/
app.use(function (req, res, next) {
res.statusCode = 404;
res.render('404.html', {status: 404, url: req.url});
});
});
た場合を
require('./routes/' + file)(app);
あなたは以前に定義されたルートを使用することができます:あなたはこのような内のファイルを読みたくない、輸入部品は、このラインです。
これは、どのルートが作成されたかを正確に制御できるようにするための方法です。プロセスを自動化する場合はhttps://github.com/visionmedia/express-resourceを使用できます。
これはあなたがすることができます:
var express = require('express'),
Resource = require('express-resource'),
app = express.createServer();
app.resource('forums', require('./forum'));
自動的./forumで以下の機能を指し示すルートを作成するには:
GET /forums -> index
GET /forums/new -> new
POST /forums -> create
GET /forums/:forum -> show
GET /forums/:forum/edit -> edit
PUT /forums/:forum -> update
DELETE /forums/:forum -> destroy
あなたも、シンプルな何かをしたい場合、あなたは可能性これを行う...
var getRoutes = [['/', controller.index], ['/post', controller.showPost]];
for (var i = 0, len= getRoutes.length; i < len; i++) {
var path = getRoutes[i][0];
var controller = getRoutes[i][1];
app.get(path, controller);
}
関連する問題
- 1. ExpressJS - ルーティング機能
- 2. ExpressJSミドルウェアの設定
- 3. ノードExpressJSルーティングでルーティングが発生する
- 4. angularjsルートからのExpressjsルーティング
- 5. 異なるパラメータでExpressJSルーティング
- 6. websocket server expressjsの動的ルーティング
- 7. JSONオブジェクトexpressJS/UnderscoreJS
- 8. カスタムAngularJSディレクティブとExpressJSルーティングを使用したルーティング
- 9. ExpressJsでクッキーを設定できない
- 10. ReactJS:ルーティング設定の問題
- 11. Ionic2ウェブアプリのルーティング設定
- 12. Thinkster MEANスタックチュートリアル、ExpressJSでREST APIを設定/設定するときのエラー
- 13. expressJSルーティングの問題、単純なものが解決しない
- 14. ルーティングの設定方法Angular4 router
- 15. ルーティング用にNginxを設定する
- 16. SAPUI5ルーティング設定の 'controlAggregation'の意味は?
- 17. Yii2レギュラーコントローラ用のURLルーティングの再設定
- 18. ボトルキット、expressjsを使用してスラックインタラクティブなボタン設定とワークフロー?
- 19. ExpressjsのXMLへの応答を設定するには?
- 20. ExpressJS "エラー:送信後にヘッダーを設定できません。"
- 21. expressjsのjson Webトークンのヘッダーを設定するには?
- 22. エラー:送信後にヘッダーを設定できないNode.jsとExpressJS
- 23. expressjsのビューエンジンとしてangularjsを設定する方法
- 24. エラー:送信後にヘッダーを設定できません。ノードExpressjs
- 25. ノード/ expressjsのjsonオブジェクトをフィルタリングする
- 26. Expressjs - セッション変数で未定義の 'userId'プロパティを設定できません
- 27. ASP MVCルーティングの設計 - ページネーションとフィルタリングによる特定のオブジェクトの子オブジェクトのリスト表示
- 28. Hadoop設定オブジェクトXML
- 29. 、ExpressJs
- 30. ExpressJS
これはいいですが、私は{'/'、controller.index}のようなものを探しています – LordZardeck
ミドルウェアをあなたのルートに追加し始めたらすぐにかなり制限されますし、 'get'、' post'、 'update'、' del'を区別する必要があります。だからあなたは本当に 'app.post( '/'、controller.index)'から '{'post'、 '/'、controller.index}'といくつかのヘルパーコードに行きます。私はルートを登録する簡単なヘルパーを含めるように私の応答を更新しました。 – Bill
基本的に私はそうしたいと思ったら通訳を作る必要がありますか? Expressには内蔵されていませんか? – LordZardeck