1

最近エクスプレスを使い始めたので、次の問題に遭遇しました。

私のルートのロジック全体は個別のファイルで定義され、require(route_name) によってインクルードされます。それぞれの get / post マッチは次のように行われます:

app.get('/', routes.home) etc.

上記の行は、routes.home がパラメーター req、res & next で呼び出される関数であることを意味します。

すべてのルートがアクセスできるようにするユーティリティ関数が utils オブジェクトに格納されています。これまで、次のように問題を解決してきました。

var utils = ...

app.get('/', function (req, res, next) {
  routes.home(req, res, next, utils);
});

utils オブジェクトをパラメーターとしてすべてのルートに渡す必要があること、または一般的に私の問題に対するより良い解決策であることを Express に伝える方法はありますか?

4

2 に答える 2

2

JohnnyHKに同意します。また、なぜ res と req を 2 回渡す必要があるのでしょうか。アプリファイルでこれをしない理由:

app.get('/', routes.home);

次に、必要なファイルで次のようにします。

var utils = require('utils')
exports.home = function(req, res){
    //code
}
于 2012-07-18T12:54:19.670 に答える
0

すべての答えをありがとう。utils モジュールに必要なルートで「init(utils)」関数を呼び出すことで、問題の解決策を見つけました。

于 2012-07-20T09:51:51.740 に答える