javascript - Sails Js 异步和深度填充

标签 javascript node.js sails.js

我正在尝试使用 async.each 来确保在返回响应之前我的深度填充已完成。我遇到的问题是站点内的位置永远不存在。我返回的只是第一次查询的网站。不过,位置查询的结果输出到控制台就很好了。

总而言之,给出了用户的 ID。然后,我返回与该用户关联的网站,然后填充该网站的位置。

getSitesForUser: function (req, res) {
    var _id = req.param('id');

    User.findOne({ id: _id })
        .populate('sites')
        .then(function afterFind(results) {
            if (!results) {
                return res.json({ status: 'failure', message: 'User not found' });
            }

            var sites = results.sites;

            async.each(sites, function (site, cb) {
                var locations = {};
                Locations.find({ id: site.id })
                    .then(function afterFind(locResults) {
                        //locResults outputs correctly
                        sails.log.debug(locResults);
                        site.locations = locResults;
                        cb();
                    })
                    .fail(function (err) {
                        sails.log.debug(err);
                        cb(err);
                    })
            }, function (err) {
                if (err) {
                    sails.log.debug(err);
                    return res.json({ status: 'failure', message: 'Server error' });
                } else {
                    return res.json({ status: 'success', message: 'Sites for found user', sites: sites });
                }
            });
        })
        .fail(function (err) {
            sails.log.debug(err);
            return res.json({ status: 'failure', message: 'Server error' });
        });
}

提前致谢。

最佳答案

根据 Sangharsh 的建议,toJSON() 解决了这个问题。

var resultsJSON = results.toJSON();
var sites = resultsJSON.sites;

关于javascript - Sails Js 异步和深度填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44883584/

相关文章:

node.js - SSL/HTTPS 的服务器发送事件 (SSE) 问题

mysql - 在启动时创建数据库连接 - sails.js

Javascript-CSS 显示和隐藏表单元素

javascript - '未捕获无效值错误 : setContent: not a string; and [object Console]' error in Google Map

javascript - 人们如何在 HTML 页面中制作部分?

node.js - Node 中的线程与其他编程语言

javascript - Node.js 和前端 js 返回不同的日期格式

localization - 我们应该为标签使用 Redis 缓存吗

sails.js - Sails 蓝图填充不工作?

javascript - 将 Javascript getter 作为参数传递