【发布时间】:2017-11-07 13:24:03
【问题描述】:
以下执行时返回空结果。没有 Count 查询也没关系,但即便如此,仍会返回正确的值,但响应始终为空。我有比赛条件问题吗?
module.exports = {
getSites: function (req, res) {
var sites = [];
Site.find({ company: req.session.companyID }).populate('locations').exec(function afterFind(err, results) {
for (index in results) {
var siteObj = {};
siteObj = results[index];
sails.models['site_users__user_sites'].count({ user_sites: results[index].id }).exec(function found(err, counted) {
if (err) {
sails.log.error(err);
}
sails.log.debug(counted); // Prints correct number
siteObj['user_count'] = counted;
sails.log.debug(siteObj['user_count']); // Shows value is present
sites.push(siteObj);
});
}
});
sails.log.debug(sites); // Nothing
return res.json(sites); // Nothing
},}
更新:
module.exports = {
getSites: function (req, res) {
var sites = [];
Site.find({ company: req.session.companyID }).populate('locations').exec(function afterFind(err, results) {
var completedResults = 0;
for (index in results) {
sails.log.debug(results);
var siteObj = {};
siteObj = results[index];
sails.models['site_users__user_sites'].count({ user_sites: results[index].id }).exec(function found(err, counted) {
if (err) {
sails.log.error(err);
}
siteObj['user_count'] = counted;
sites.push(siteObj);
completedResults++;
if(completedResults === results.length) {
sails.log.debug(sites);
res.json(sites);
}
});
}
});
},
}
更新到上述内容后,记录“结果”会生成所有正确的记录。但是,当返回“站点”时,返回的两个条目是重复的。
更新 2
我感觉在访问 for 循环中的下一项之前异步查询没有完成,因此将值分配给了错误的对象。
更新 3 提供日志以寻求帮助。
这是“结果”的日志
[ { locations: [],
company: 1,
name: 'N',
id: 1,
createdAt: '2017-06-06T10:07:25.000Z',
updatedAt: '2017-06-06T10:07:26.000Z' },
{ locations: [],
company: 1,
name: 'W',
id: 2,
createdAt: '2017-06-06T11:08:08.000Z',
updatedAt: '2017-06-06T11:08:08.000Z' } ]
这是“网站”的日志
[ { locations: [],
company: 1,
name: 'W',
id: 2,
createdAt: '2017-06-06T11:08:08.000Z',
updatedAt: '2017-06-06T11:08:08.000Z',
user_count : 1 },
{ locations: [],
company: 1,
name: 'W',
id: 2,
createdAt: '2017-06-06T11:08:08.000Z',
updatedAt: '2017-06-06T11:08:08.000Z',
user_count : 1 } ]
【问题讨论】:
标签: javascript mysql node.js sails.js