MongoDB と Jade テンプレート言語を使用して NodeJS 0.8.8 で実行されている Expressjs アプリがあり、ページ タイトル、ロゴ画像など、サイト全体のプレゼンテーション オプションの多くをユーザーが構成できるようにしたいと考えています。
これらの構成オプションを mongoDB データベースに保存して、アプリケーションの起動時に読み取り、アプリの実行中に操作し、jade テンプレートに表示できるようにするにはどうすればよいですか?
私の一般的なアプリの設定は次のとおりです。
var app = module.exports = express();
global.app = app;
var DB = require('./accessDB');
var conn = 'mongodb://localhost/dbname';
var db;
// App Config
app.configure(function(){
...
});
db = new DB.startup(conn);
//env specific config
app.configure('development', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
}); // etc
// use date manipulation tool moment
app.locals.moment = moment;
// Load the router
require('./routes')(app);
これまでのところ、「siteConfig」コレクションの「Site」というモデルを作成し、Site.find() を実行する accessDB.js に getSiteConfig という関数を作成して、コレクション内の 1 つのドキュメントのフィールドを取得しました。
したがって、これが問題の核心です。サイト全体で使用できるようにするには、これらのフィールドを Express アプリにどのように挿入すればよいでしょうか? moment.js ツールで使用したのと同じパターンに従う必要がありますか? このような:
db.getSiteConfig(function(err, siteConfig){
if (err) {throw err;}
app.locals.siteConfig = siteConfig;
});
そうでない場合、これを行う正しい方法は何ですか?
ありがとう!