nodejs无法将属性绑定到对象

时间:2018-01-18 09:36:54

标签: javascript node.js express

该属性已被绑定到对象问题列表,但它没有在响应时间到达 -

{
let cnt = 0; 
questionnaire.find({"language" : defulatLang}, function (err, questionnaireList) {
  if (questionnaireList !== null) {

    async.eachSeries(questionnaireList,function(myquestions,callback){

      questionnaire.find({'questionGroupId':"5a5ed4917c33629c1d383b8d"}, function (err, groups) {

        questionnaireList[cnt].languagelist=groups;
        // console.log("binded",questionnaireList[cnt].languagelist);


        if(questionnaireList.length == cnt+1){
          console.log("hello  from response",questionnaireList)
          res.json({
            "code": 200,
            "status": "success",
            "message": "Questionnaire list",
            "data": questionnaireList
          });
        }
        cnt ++;
      });
    callback();
    });


  }

我想以这样一种方式做出回应,即绑定的属性也应该与响应一起发送

1 个答案:

答案 0 :(得分:0)

你可以这样做 -

let cnt = 0;

questionnaire.find({ "language": defulatLang }, function (err, questionnaireList) {
if (questionnaireList !== null) {

    async.eachSeries(questionnaireList, function (myquestions, callback) {

        questionnaire.find({ 'questionGroupId': "5a5ed4917c33629c1d383b8d" }, function (err, groups) {

            if (err) {
                return callback(err);
            }
            questionnaireList[cnt].languagelist = groups;
            // console.log("binded",questionnaireList[cnt].languagelist);


            if (questionnaireList.length == cnt + 1) {
                console.log("hello  from response", questionnaireList)
                res.json({
                    "code": 200,
                    "status": "success",
                    "message": "Questionnaire list",
                    "data": questionnaireList
                });
            }
            cnt++;
            callback(null);
        });
    })
}
console.log("questionnaireList is null ", questionnaireList);
console.log("err ", err);
});

您尚未正确处理 eachSeries 回调。

试试吧。