小编tut*_*ley的帖子

如何在MongoDB中为NodeJS Express应用程序存储站点配置?

我有一个使用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);
Run Code Online (Sandbox Code Playgroud)

到目前为止,我为"siteConfig"集合创建了一个名为"Site"的模型,我在accessDB.js中有一个名为getSiteConfig的函数,它运行Site.find()...以检索集合中一个文档中的字段.

所以这就是问题的症结所在:我应该如何将这些字段注入Express应用程序,以便它们可以在整个站点中使用?我应该使用与moment.js工具相同的模式吗?像这样:

db.getSiteConfig(function(err, siteConfig){
  if (err) {throw err;}
  app.locals.siteConfig = siteConfig;
});
Run Code Online (Sandbox Code Playgroud)

如果没有,那么这样做的正确方法是什么?

谢谢!

mongoose mongodb node.js express pug

5
推荐指数
1
解决办法
3465
查看次数

标签 统计

express ×1

mongodb ×1

mongoose ×1

node.js ×1

pug ×1