1

ExpressJS 3 アプリがあり、別のファイルにルートがあります。ルート定義自体の外で、routes ファイルで利用可能な app.js でいくつかの構成を宣言したいと思います。

私の app.js では、次のようなことをしたいと思います。

app.set('path_to_models', '/path/models/');

次に、routes/index.js ファイルで、これを実行できるようにしたいと考えています。

var Product = require(app.get('path_to_models') + 'product');

exports.list = function(req, res){
  return Product.find(function (err, products) {
    if (!err) {
       res.render('product/manage', { products: products });
    } else {
       res.render('5xx');
    }
  });
};

これに関連するいくつかの投稿を見てきましたが、私が探しているものに実際に対処したものはありません. ルートを関数でラップできることはわかっていますが、可能な場合はコードをそのまま保持する別の方法が必要です。

4

2 に答える 2

2

構成を保持する別のconfigモジュールを作成するだけで、構成からの情報が必要なモジュールでは、通常どおり必要になります。より疎結合のアプローチがうまく機能するのに、なぜ Express をミックスにドラッグする必要があるのでしょうか。

config.js

exports.pathToModels = "/path/to/models";

ルート.js

var config = require("./config");
console.log(config.pathToModels);
于 2012-08-20T01:18:25.290 に答える
1

app`routes/index.js' に引数として渡すだけです:

var routes = require('./routes/index.js')(app);

更新:これは

var routes = require('./routes/index.js').init(app);

とでroutes/index.js

var app;
exports=function(whichApp) {

更新:これは

exports.init=function(whichApp) {

  app=whichApp;
  // do initialization stuff
  return exports;
}

exports.list=...
于 2012-08-20T08:13:45.790 に答える