2015-03-25 89 views
0
exports.getCityCascade = function (req, res) { 
var result = {}; 
Province.find().exec(function (err, provinces) { 
    result.provinces = provinces; 
    var provinceCount = 0; 
    async.whilst(
     function() { 
      return provinceCount < provinces.length 
     } 
     , function (callback) { 
      City.find({province: provinces[provinceCount].id}).exec(function (err, cities) { 
       if (err) { 
        callback(err); 
       } else { 
        result.provinces[provinceCount].cities =cities; 
       } 
       provinceCount++; 
       callback(null , result); 
      }); 
     }, function (err, result) { 
      if (err) return res.jsonp({message: err.message}); 
      return res.jsonp({ 
       status: '200', 
       results: result}); 
     } 
    ) 
}) 
} 

当我将cities字段添加到省份时,似乎不起作用。响应主体不包含字段cities。如何解决它?任何建议都会非常有帮助。如何将字段添加到猫鼬查询结果?

+2

你在哪里增加'provinceCount'?我的意思是,看起来像一个无限循环。 – 2015-03-25 11:41:11

+0

谢谢你提醒我,我现在就修好了。 – 2015-03-25 13:25:25

回答

1

的问题就是变量名之间的冲突:你宣布一个var resultProvince.find(),但async.whilst()还采用result作为其回调函数的第二个参数。只需重命名其中一个,它应该工作。