假设我有这段代码来分隔 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) 如何以最佳方式将数据库查询分离到新文件中?
即使我分离数据库逻辑,这个文件也会变得非常大。
2) 分隔路线的好方法是什么?也许单独的模块?然后在 app.js
中要求它们?
最佳答案
这里有一个类似的问题,您应该阅读:How to structure a express.js application?
1) 您所有的查询逻辑都应该放在模型中(例如位于/models 中的模块)
2) 将所有路由( Controller )分成模块(并将它们放入/routes for ex) 路线我的意思是例如: - “用户”路由的所有逻辑都进入/routes/users.js
尽量让你的应用像 MVC 一样。
上面你的应用的小例子:
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);
}
}
关于javascript - Nodejs/Expressjs 应用结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8428212/