Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用mongoskin向页面提供查询结果_Node.js_Mongodb_Asynchronous_Express_Mongoose - Fatal编程技术网

Node.js 如何使用mongoskin向页面提供查询结果

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

我正在使用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
   });
   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。