ExpressJS中MVC的数据库对象模式

时间:2013-12-27 05:37:37

标签: node.js activerecord express

TL:博士;

我想在ExpressJS中为我的模型和控制器提供数据库对象。我该怎么做?

更长的解释:

我的背景是使用Codeigniter及其拥有的活动记录实现。我已经看过其他示例节点实现(例如,平均堆栈),但是,我希望得到一个简单,低级别的网站,并且我从头开始理解。

问题在于我不知道表达得如何能够理解我应该如何传递物体。所以我有rounting,db连接和页面渲染都很好。但是,我不确定是否将DB连接提供给实际的控制器或模型。

所以,我现在的设置是:

App.js:

...
//Start the database 
var Db = require('mysql-activerecord');
var db = new Db.Adapter({
server: 'localhost',
username: 'root',
password: '********',
database: 'test'
});
// }}}
...
require('./config/routes')(app);

对于config / routes.js

  2 /*
  3  Exporting variable:
  4  @param app The express App 
  5 */
  6 
  7 
  8 module.exports = function(app) {
  9 
 10     //Home route
 11     var index = require('../server/controllers/index');
 12     app.get('/', index.render);
 13 
 14 }
 15 

所以...

问题可能更具风格而非技术。我的问题是:

  1. 我是否正确地思考这个问题?
  2. 你会如何推荐连接它?我应该在控制器中使用'require(../ ..)'还是有更优雅的解决方案?

1 个答案:

答案 0 :(得分:0)

您也可以将db对象传递给routes.js(或您制作的任何其他所需文件)文件:

require('./config/routes')({ app: app, db: db });