Node.js 如何使用mongoskin向页面提供查询结果
我正在使用nodejs插件与mongodb对话。但问题是,所有mongoskin API方法都是异步的,我使用的是同步nodejs服务器(使用express)来为网页提供服务。我如何完成这样的任务:Node.js 如何使用mongoskin向页面提供查询结果,node.js,mongodb,asynchronous,express,mongoose,Node.js,Mongodb,Asynchronous,Express,Mongoose,我正在使用nodejs插件与mongodb对话。但问题是,所有mongoskin API方法都是异步的,我使用的是同步nodejs服务器(使用express)来为网页提供服务。我如何完成这样的任务: server.get('/woofs', function(req, res) { var ret; woofDb.find().toArray(function(err, i) { //do something with each i to construct ret
server.get('/woofs', function(req, res) {
var ret;
woofDb.find().toArray(function(err, i) {
//do something with each i to construct ret
});
res.end(ret);
});
答案是不要尝试使用synchronous node.js服务器。它完全违背了使用node.js的目的,而且越早接受它,您的node.js体验就会越愉快。也就是说,下面的代码应该可以让您非常接近您要做的事情
server.get('/woofs', function(req, res) {
woofDb.find().toArray(function(err, i) {
var ret;
//do something with each i to construct ret
res.end(ret);
});
});
那我应该用什么?我应该继续使用mongoskin并改变服务器的工作方式,还是继续使用express并使用其他mongo适配器?哪个更好?我个人更喜欢express而不是mongoskin,所以我可以使用的mongo适配器是同步的——mongodb native没有那么好,mongoose也不同步……我的答案中的示例是不同步的。默认情况下,Express是非阻塞的,就像几乎所有的node.js库一样。没有理由不能使用express和mongoskin。