我正在构建一个 RESTful 服务,用于使用Express.js、Node.js和MongoDB查询电影数据库 ,而且我是所有这些的初学者。
我的问题是使用 Node 构建 db 查询的最佳实践是什么,以便我利用回调机制而不阻塞服务器,但同时不编写臃肿的代码。
我修改了 express-generator 提供的代码,我认为它实现了前者而不是后者。你有什么意见?
如果您能为处理数据库查询的 Express 路由提供通用框架,我将不胜感激。
下面是我的代码
var findMovie = function(db, callback, req, res) {
var path = req.path.split("\/");
var cursor = db.collection('movies').find({"_id" : ObjectId(path[path.length - 2])});
var query = [];
cursor.each(function(err, doc) {
assert.equal(err, null);
if (doc != null) {
query.push(doc);
} else {
res.json(query);
callback();
}
});
Run Code Online (Sandbox Code Playgroud)
}
router.get('/movies/:id/info/', function(req, res, next){
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
findMovie(db, function() {
db.close();
}, …Run Code Online (Sandbox Code Playgroud)