2012-04-02 56 views
0

我正在使用mongoskin nodejs插件与mongodb进行通信。但问题是所有mongoskin API方法都是异步的,我正在使用同步nodejs服务器(使用express)来为网页提供服务。我如何完成这样的事情:如何使用mongoskin为查询结果提供页面

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); 
}); 

回答

2

答案是不要尝试使用同步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); 
    }); 
}); 
+0

那我该用什么?我是否应该继续使用mongoskin并改变服务器的工作方式,或者继续使用express并使用其他mongo适配器?哪个更好?我个人比mongoskin表达更多,所以mongo适配器是同步的,我可以使用express - mongodb-native不是很好,猫鼬也不是同步的... – pathikrit 2012-04-03 03:01:22

+0

我的答案中的示例不同步。默认情况下,表达式就像非常多的node.js库一样是非阻塞的。没有理由不能使用express和mongoskin。 – 2012-04-03 03:26:30

相关问题