【问题标题】:Handling async database in nodejs在 nodejs 中处理异步数据库
【发布时间】:2014-08-05 07:47:42
【问题描述】:

我是节点 js 的新手。我使用sails js作为框架。我正在尝试使用嵌套数据库查询。 请检查添加的代码。

我当前的 mongo 集合名称是 todostatus。形成它我抓住了数据。然后我尝试使用回调函数来迭代数据并更新数据库中数据中的每个项目。但我没有得到所有的数据。谁能给我领导?

提前致谢,

尼克松

 TodoStatus.find({todo_id : req.params.todo_id}).done(function(errs, responsible){
                                if(errs){
                                }
                                else{

                                    function grabUsersName(todoRes, callback){
                                        async.forEach(todoRes, function (item, callback2){

                                           User.findOne ({id : item.user_id}).done(function (errses, user) {
                                                if(errses)
                                                {
                                                    console.log(errses);
                                                }
                                                else
                                                {
                                                    item['name'] = user.name;
                                                }

                                            });
                                        }, function(eerr) {
                                            callback(todoRes);
                                        });
                                    }

                                    grabUsersName(responsible, function(resultsa){
                                        console.log(resultsa);

                                        return res.view({
                                            responsible: resultsa
                                        })
                                    })



                                }
                            })

【问题讨论】:

    标签: javascript node.js mongodb sails.js sails-mongo


    【解决方案1】:

    我找到了解决办法。

    问题在于函数grabUserName()。我错过了为 async.forEach 使用回调。查看函数代码以获取更多信息

    function grabUsersName(todoRes, callback){
        async.forEach(todoRes, function (item, callback2){
              User.findOne ({id : item.user_id}).done(function (errses, user) {
                    if(errses){
                       console.log(errses);
                    }
                    else{
                       item['name'] = user.name;
                       callback2();
                    }
               })
        }, function(eerr) {
                   callback(todoRes);
       });
    }
    

    【讨论】:

      猜你喜欢
      • 2019-10-01
      • 2022-01-12
      • 1970-01-01
      • 2017-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-19
      • 2021-08-24
      相关资源
      最近更新 更多