2012-04-02 6 views
0

zu liefern Ich verwende mongoskin nodejs Plugin, um mit mongodb zu sprechen. Aber das Problem ist, dass alle mongoskin-API-Methoden async sind und ich einen synchronen nodejs-Server (unter Verwendung von express) verwende, um die Webseiten zu bedienen. Wie kann ich so etwas wie dies zu erreichen:Wie mongoskin verwendet werden, um Abfrageergebnisse zu einer Seite

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); 
}); 

Antwort

2

Die Antwort ist zu versuchen, nicht einen synchronen node.js Server zu verwenden. Es vereitelt den Zweck der Verwendung von node.js vollständig und je früher Sie dies annehmen, desto angenehmer wird Ihre Erfahrung mit node.js. Davon abgesehen, sollte der folgende Code Ihnen recht nahe bringen, was Sie zu tun versuchen.

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

Was soll ich dann verwenden? Sollte ich weiterhin mongoskin verwenden und die Art und Weise ändern, wie mein Server funktioniert ODER weiterhin express verwenden und einen anderen Mongo-Adapter verwenden? Welches ist besser? Ich persönlich liebe express mehr als mongoskin so was mongo adapter ist synchron, dass ich mit express verwenden kann - mongodb-native ist nicht so nett und mongoose ist auch nicht synchron ... – pathikrit

+0

Das Beispiel in meiner Antwort ist nicht synchron. Express ist standardmäßig nicht blockierend, genau wie so viele Bibliotheken von node.js. Es gibt keinen Grund, dass Sie Express und Mongoskin nicht verwenden können. –