Node express와 mongodb를 사용하고 있습니다. 쇼 페이지의 모든 관련 속성을 반복 할 수 있도록 노력하고 있습니다. 내 코드는 밖으로 # 1 console.log
로그 모든 결과 올바른,TypeError : undefined의 'ref'속성을 읽을 수 없습니다. Express
Desktop.find({}, function(err, allDesktop) {
if(err){
console.log(err);
} else {
console.log(allDesktop); // #1
res.locals.desktops = allDesktop; // Set the data in locals
}
});
console.log("res.locals.desktops: ", res.locals.desktops); //#2
그 코드는 경로의 일부입니다. 그러나 console.log
# 2는 undefined
을 반환합니다. 왜 이런거야? 나는 똑같은 경로의 다른 지점에서 비슷하게 설정했다는 것을 알고 있지만 대신에 res.locals.laptops
내가 무엇을 놓치고 있습니까?
'Desktop.find'는 동기식 함수이므로 호출 직후 결과를 사용할 수 없습니다. 결과는 콜백에서 사용 가능합니다. 왜냐하면'console.log'의 첫 번째 호출은 정확한 데이터를 출력하지만 두번째'undefined'를 출력하기 때문입니다. – alexmac
'Desktop.find()'가 실행 중입니다 만, db가 결과를 반환 할 때 콜백이 실행되기 전에'console.log()'로 이동합니다 - 반환되기 전에 결과를 출력하려고합니다. 콜백 내에서'console.log()'를 움직이십시오. – doublesharp