8

私は主観的なアドバイスを探しています (そして、これが閉じられる可能性があることはわかっています) が、node.js プロジェクトでルートとコントローラーを分離できるようにしたいので、いくつか質問があります。

  • 試しても無駄ですか? node.jsの哲学はJSファイルを少なく/大きくすることですか?
  • require("routing") を実行して、すべてのルートをコントローラーに必要なモジュールに接続できるようにしたいと考えています。すべてを入れれば簡単にできますindex.jsが、それは奇妙に思えます。私はすでにapp.get("/" controllers.index);スタイルの分離を行っていますが、すべての JS ファイルを別のモジュールに含めるだけのモジュールの構築に行き詰まっています。何か不足していますか?
  • それとも、これを行うための完全に異なる node.js スタイルがあり、ASP.NET MVC の知識を深くマッピングしようとしているのかもしれません。
4

2 に答える 2

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

Rails のように RESTful ルートを実装する MVC ベースexampleの例など、GitHubの Express のディレクトリにも興味深い例がいくつかあります。

于 2012-07-06T20:28:42.157 に答える
0

あなたの意図が RESTish API サーバーを実行することである場合は、試してみてください: https://github.com/kilianc/node-apiserver 例: https://github.com/kilianc/node-apiserver/blob/master/例

于 2012-07-06T20:37:24.467 に答える