2012-07-06 2 views
7

私は主観的なアドバイスを探していますが(これは閉鎖されているかもしれません)、node.jsプロジェクトでルートとコントローラを分離したいと思っています。 :Node.jsでコントローラとルートを別々に使用する

  • node.jsの考え方では、JSファイルの数を減らすことはできませんか?
  • 私は、ルーティング(routing)を要求し、自分のコントローラのために必要なモジュールへのすべてのルートを結びつけたいと思っています。私はちょうどindex.jsのすべてを入れれば私はこれを簡単にすることができますが、それは奇妙に思えます。私はすでにapp.get("/" controllers.index);スタイルの分離をやっていますが、私は別のモジュールにすべてのJSファイルを含むモジュールをビルドするつもりです。何か不足していますか?
  • これとはまったく異なるnode.jsスタイルがあり、ASP.NET MVCの知識をあまりにも深くマップしようとしていますか?
+0

MVC https://github.com/pksunkara/bullet/tree軽量急行・フラットアイアンを試してみてください/ master/example / –

答えて

7

使用すると、1つのファイルにそれをすべて取得したい場合は、あなたが./routes/内のすべてのファイルを必要とし、パラメータとしてappでそれぞれにエクスポートされた関数を呼び出す、このような何かを試してみてくださいは:

// routing.js 

var fs = require('fs'); 

module.exports = function(app) { 
    fs.readdirSync(__dirname + '/routes/').forEach(function(name) { 
    var route = require('./routes/' + name); 
    route(app); 
    }); 
} 

// routes/index.js 

module.exports = function(app) { 
    app.get('/something', function(req, res) { ... }); 
    app.get('/something/else', function(req, res) { ... }); 
} 

// routes/pages.js 

module.exports = function(app) { 
    app.get('/pages/first', function(req, res) { ... }); 
    app.get('/pages/second', function(req, res) { ... }); 
} 

// server.js 

var app = express.createServer(); 
require('./routing')(app); // require the function from routing.js and pass in app 

また、GitHubのExpressのexampleディレクトリには、RailsのようなRESTfulなルートを実装しているan MVC-based oneなどの興味深い例がいくつかあります。

関連する問題