2012-04-02 4 views
0

나는 mongoskin nodejs 플러그인을 사용하여 mongodb와 대화하고 있습니다. 하지만 문제는 모든 mongoskin API 메소드가 비동기이며 동기식 nodejs 서버 (익스프레스 사용)를 사용하여 웹 페이지를 제공하고 있습니다. 어떻게 이런 식으로해야합니까 :mongoskin을 사용하여 페이지에 질의 결과를 제공하는 방법

server.get('/woofs', function(req, res) { 
    var ret; 
    woofDb.find().toArray(function(err, i) { 
    //do something with each i to construct ret 
    }); 
    res.end(ret); 
}); 

답변

2

대답은 동기 node.js 서버를 사용하려고하지 않는 것입니다. node.js를 사용하는 목적을 완전히 무효화하고 node.js의 경험이 더욱 즐거워 질수록 더 빨리 포용 할 수 있습니다. 즉, 다음 코드는 수행하려는 작업에 매우 가깝게 처리해야합니다.

server.get('/woofs', function(req, res) { 
    woofDb.find().toArray(function(err, i) { 
     var ret; 
     //do something with each i to construct ret 
     res.end(ret); 
    }); 
}); 
+0

그럼 어떻게해야합니까? mongoskin을 계속 사용하고 내 서버 작동 방식을 변경하거나 Express를 계속 사용하고 다른 mongo 어댑터를 사용해야합니까? 어떤게 더 좋아? 나는 개인적으로 mongoskin보다 더 표현하기를 좋아한다. 그래서 mongo adapter는 내가 express와 함께 사용할 수있는 동기식이다 - mongodb-native는 좋은 것이 아니고 몽구스도 동기가 아니다. ... – pathikrit

+0

내 대답의 예는 동기가 아니다. 익스프레스는 기본적으로 모든 node.js 라이브러리와 마찬가지로 비 블로킹입니다. 특급 및 몽고 스킨을 사용할 수없는 이유는 없습니다. –

관련 문제