이미지 모델과 사용자 모델이 있습니다. 모든 이미지는 사용자의 user_id 필드를 가지고 있으며 사용자 및 이름의 사진을 가져 와서 이미지 객체에 추가하고 이미지 배열을 반환하려고합니다.몽구스 두 요청에 따라 달라집니다
하나의 이미지에 author_image 필드를 추가하려고 할 때 어떤 오류도 발생하지 않습니다. 그러나 모든 이미지에서 루핑 할 때 appData는 이미지 데이터가 정의되지 않았고 userData가 정의되지 않은 경우 출력이 중단됩니다. 약속을 사용했지만 다시 오류가 발생했습니다. 정의되지 않은 오류없이 수행 할 수있는 최선의 방법은 무엇입니까? 당신이 놓친 무엇
는router.route('/images/all')
.get(function(req,res){
var response = {};
var imagesData = {};
images.find({}).lean().exec(function(err,data){
// console.log(data);
imagesData = data;
if (!err) {
for (var i = 0; i < imagesData.length; i++) {
users.find(({'_id': imagesData[i].user_id}),function(err,userData){
console.log(userData);
imagesData[i].author_pic = userData[0].profile_image;
});
}
}
res.json(imagesData);
});
});
저는 이것을 코드에 넣었습니다. author_pic 값은 다음과 같습니다. "author_pic": { "promise": {}} – Noy
그냥 조건을 입력하고 약속 값을 추출하십시오. 'if (Q.isPromise (result [i])) { results [i] = results [i] .valueOf(); }'Q.all' 안에있는 루프 내부 – hyades
감사합니다. – Noy