javascript – Nodejs/Expressjs应用程序结构

说我有这个代码来分离expressjs中的路由:

module.exports = function(express,app,client) {

    app.get('/', function(req,res,next) {
        var query = 'SELECT * FROM users LIMIT 10';
        var user = client.query(query, function (err, results, fields) {
            res.render('index', {
                title: 'test',
                users: results
            });
            client.end();
        });
    });
}

并在app.js中要求它:

require('./controllers/routes.js')(express,app,client);

1)如何以最佳方式将db查询分离成新文件?

即使我分离了db逻辑,这个文件也会很大。

2)什么是分离路线的好方法?也许单独的模块?然后在app.js中要求它们全部?

这里有一个类似的问题,您应该阅读:Node.js & Express.js: Breaking up the app.js file

1)所有的查询逻辑应该放在模型中(例如驻留在模型中的模块)

2)将所有路线(控制器)分为模块(并将其放在/路由中)
按路线我的意思是:
– “用户”路由的所有逻辑进入/routes/users.js

尽量让你的应用程序成为MVC-ish。

您上面的应用程序的小例子:

app.js

// configuration for express etc
require('./routes/index')(app)

routes / index.js

var model = require("../models/users.js");

module.exports = function (app) {

  app.get('/', function (req, res, next) {
    model.get_recent(function (err, results) {
      // do stuff with your results
      res.render('index');
    });
  });

}

models / users.js

module.exports = {
  get_recent: function(callback) {
    var query = "SELECT * FROM users LIMIT 10";
    database.query(query, callback);
  }
}
http://stackoverflow.com/questions/8428212/nodejs-expressjs-app-structure

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – Nodejs/Expressjs应用程序结构