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查询分隔成新文件?

即使我分开数据库逻辑,这个文件也会变得很大。

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

这里有一个类似的问题,你应该阅读: 如何构build一个express.js应用程序?

1)所有的查询逻辑都应放在模型中(例如,模块位于/ models中)

2)将所有的路由(控制器)分成模块(并把它们放在/路由为前)通过路线我的意思,例如: – 所有“用户”路线的逻辑进入/routes/users.js

尽量让你的应用程序尽可能MVC-ish。

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

app.js

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

路线/ 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'); }); }); } 

车型/ users.js

 module.exports = { get_recent: function(callback) { var query = "SELECT * FROM users LIMIT 10"; database.query(query, callback); } } 

在expressjs下载包中,有一个名为“mvc”的文件夹。 作者提供了一个很好的例子,一个微型和高效的mvc结构。 通过代码,你会得到很多的启发。

快车怎么样? 我最近一直在使用它,它与复杂的应用程序结构很好地发挥。