繁体   English   中英

带有回调模式的仓库模式的Mongoose和Node.js

[英]Mongoose and nodejs with repository pattern without callbacks

我试图在javascript中创建存储库类/函数,但是由于回调,我无法从函数中返回值:

this.getAll = function(collection)
{
    var result;

 collection.find(function (err, objects) {
              if (err) return console.error(err);
              console.log(objects);
              var result = objects;
        });

     return result;
}

 var result = repo.getAll(Kitten);
 console.log(result);

但是这里的结果首先被调用,然后回调被调用。 做我想做的事好吗? 还是应该将回调函数传递到存储库中?

我使用回调。 它认为这是NodeJS的功能。 您也可以使用promise代替回调。

您可以为存储库创建方法,如下所示:

function getAll(collection, cb){
   collection.find(function (err, objects) {
      cb(err, objects);
   });
}

getAll(Kitten, function(err, objects){
   console.log(objects);
});

您应该学习如何使用回调。 如果您不喜欢它创建的语法,则可以使用promise。 JavaScript和NodeJS中的回调是基础。 但是要避免产生圣诞树效应,请将代码重构为函数和方法。 我还建议您看一下异步模块,特别是async.series和async.parallel。

您可以查看以下博客该博客着重介绍了有关nodejs的一些有效观点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM