2013-04-15 5 views
0

가이 코드 노드 JS .Cannot는

exports.index = function (req, res) { 
res.render('product/index.jade', { 
    products: db.products.find().toArray(function (err, prods) { 
     if (!err) 
      return prods; 
     return []; 
    }) 
}); 
에게}이 옥보기에 MongoDB의 쿼리 결과를 전달합니다;

내가 여기서하려고하는 것은 쿼리 결과를 "products"라는 매개 변수가 필요한 옥 (jade)보기로 전달하는 것입니다. 나는 많은 조합을 시도했지만 그 중 어느 것도 작동하지 않습니다. (지금은 "길어 볼 수 없습니다."). 신참이 틀림 없음을 나는 안다, 그러나 나는 그것을 알아낼 수 없다, 어떤 도움은 apreciated 될 것이다!

추신 : 나는 express와 mongodb를 사용하고 있습니다. 그리고 예, 제품 컬렉션에는 제품이 포함되어 있습니다.

답변

1

toArray는 실제로 값을 반환하지 않습니다. 대신 룩업이 완료되면 콜백 함수가 매개 변수로 제품과 함께 호출됩니다. 이는 노드의 비동기 I/O 특성 때문입니다.

코드는 아마도 그것은, IO 시간이 일부에 익숙해 소요 Node.js를 함수의 중첩으로 가장 일반적인 신인 실수 표현되는 것이

exports.index = function (req, res) { 
    db.products.find().toArray(function (err, prods) { 
     if (!err) 
      res.render('product/index.jade', {products: prods}); 
     else 
      res.render('product/index.jade', {products: []}); 
    }); 
}); 
+0

처럼 보일 것이다. – generalhenry

+0

감사합니다. ozk, 매력처럼 작동했습니다! –

+0

큰 소리로 들려서 기쁩니다. – ozk