MongoDBとJadeテンプレート言語を使用してNodeJS 0.8.8で実行されるExpressjsアプリケーションがあります。ページタイトル、ロゴイメージなどのサイト全体のプレゼンテーションオプションの多くをユーザーが設定できるようにしたいと思いますNodeJS ExpressアプリケーションのMongoDBにサイト設定を保存するにはどうしたらいいですか?
これらの設定オプションをmongoDBデータベースに保存して、アプリケーションの起動時にそれらを読み込んで、アプリケーションの実行中にそれらを操作して、それらを翡翠テンプレートに表示できるようにするにはどうすればよいですか?
はここに私の一般的なアプリの設定です:
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.findを実行accessDB.jsでgetSiteConfigと呼ばれる機能を持っています()...コレクション内の1つのドキュメントのフィールドを取得します。
これは質問の要点です:これらのフィールドをエクスプレスアプリに注入して、サイト全体でどのように使用できるのですか?私はmoment.jsツールで使用したのと同じパターンを実行する必要がありますか?このように:
db.getSiteConfig(function(err, siteConfig){
if (err) {throw err;}
app.locals.siteConfig = siteConfig;
});
これを行う正しい方法はありますか?
ありがとうございます!
は、これはあなたがセッションに保存したいものですか? – c0deNinja
いいえ、私はそう信じていません。私はクライアントにアクセス権を与えたくありません。私はちょうどサーバー側のエクスプレスアプリ(特に翡翠)がアクセスできるようにしたい。 私はconsole.logのポイントまで作業しています。私はそれをapp.localsに追加して何が起こるかを見てみるべきだと思うが、それを使うことのセキュリティの意味は不明だ。 (またはその安定性) – tutley