Game 개체에 User 개체를 추가하여 편집해야합니다. 이것은 몽구스 쿼리 findById에 의해 수행됩니다. 이 쿼리가 작동합니다. 그러나 수정 된 게임을 결과 배열에 추가하려면 뭔가 잘못되었습니다. 'console.log (게임);' 올바른 출력을 반환하지만 'console.log (result);' 항상 비어 있습니다. 무슨 일 이니? 내부 기능이있는 것입니까?노드 JS + Express + Mongoose가 findById의 배열을 채우지 않습니다.
0
A
답변
0
클래스 콜백 문제가 발생했습니다. 게임에서 forEach
을 호출하면 코드는 실제로 콜백 외부에서 계속 실행되므로 결과는 처음에 할당 한 값이됩니다 ([]
). 이는 비동기로 평가되는 코드 때문입니다.
var utils = require('restberry-utils');
var getResult = function(next) {
var result = [];
utils.forEachAndDone(games, function(game, iter) {
User.findById(game.user1_id, function(err, user) {
if (err) console.log(err);
game.user1 = user;
result.push(game);
iter();
});
}, function() {
next(result);
});
};
getResult(function(result) {
console.log(result);
});
공지 나는 restberry-utils
패키지를 가져 와서 forEachAndDone
방법을 사용했습니다. 이 메서드는 개체를 반복하지만 iter
메서드를 호출하지 않으면 계속되지 않습니다. 모든 객체를 반복 할 때 최종 콜백이 호출되며 결과는 반환됩니다.
희망적입니다.
관련 문제
- 1. 노드 Js Express 배열을 통해 반복합니다.
- 2. 노드 js Express 병렬 요청
- 3. 노드 js express 앱은 정적 파일을 제공합니다.
- 4. 노드 js express : 유효하지 않은 요청 데이터?
- 5. 노드 js express 3 app.post not working
- 6. 노드 JS + Express : 기본보기의 하위보기 렌더링
- 7. AJAX 및 노드 JS/Express 게시물이 데이터를 보내거나 수신하지 않습니다.
- 8. mongoose가 문서를 저장하지 않습니다.
- 9. 노드 시작시 Hazelcast가 ReplicatedMap을 채우지 않습니다.
- 10. Ext JS Grid가 'fit'레이아웃으로도 패널을 채우지 않습니다.
- 11. XML 비 순차화가 배열을 채우지 않습니다.
- 12. Breeze가 탐색 속성을 확장하여 배열을 채우지 않습니다.
- 13. 노드 js 콜백 모호성
- 14. knockout JS jsonp에서 관찰 가능한 배열을 채우지 않는 Ajax 호출
- 15. 노드 js 클러스터에 복제 된 배열을 업데이트
- 16. 노드 JS 테스트 스위트 배열을 인수로 처리합니다.
- 17. 노드 JS less-middleware가 자동 컴파일되지 않습니다.
- 18. 노드 JS 리디렉션
- 19. 노드 js 서버가 응답하지 않습니다.
- 20. 브런치로 Chaplin 파일과 express 노드 .js 파일 모두보기
- 21. 최신 노드/express
- 22. Express js 양식 데이터
- 23. Express js 라우팅에서 파일을 다운로드하고 렌더링하지 않습니다.
- 24. 연결 redis가있는 노드/Express
- 25. 트위터 Oauth가있는 노드 JS
- 26. 노드 JS 및 SQL Server 2008 R2 Express
- 27. 노드 js/express js의 동시 연결을 늘리는 방법은 무엇입니까?
- 28. 노드 JS Express 라우팅이 처리되지 않음/올바르게 처리되지 않음
- 29. 노드 js + Express + Passport + MongoDB에서 사용자 레코드 업데이트
- 30. 노드 JS - Express - Mongo DB : JSON 키에 대괄호가있는 데이터 게시
고마워요! 알았어. – Jan