2015-08-10 22 views
6

sono le risposte a questa domanda ancora attuale: How can I promisify the MongoDB native Javascript driver using bluebird?È ancora necessario promettere il driver MongoDB?

Non so da quando questo è stato aggiornato, ma 2,0 autista JS per MongoDB ha una proprietà nelle opzioni oggetto promiseLibrary: http://mongodb.github.io/node-mongodb-native/2.0/api/MongoClient.html

E la maggior parte metodi/funzioni restituiscono una promessa, come ad esempio Cursor.toArray().

Tuttavia, non riesco a trovare un esempio utilizzando questa nuova opzione, ma non sarebbe più semplice utilizzando solo:

MongoClient.connect('mongodb://URL', { promiseLibrary: require('bluebird') }); 

O è questa definizione non va? - In tal caso, come dovrebbe essere definito correttamente?

Aggiornamento:

Il codice è in esecuzione su io.js quindi non potrebbe nemmeno bisogno di specificare una promiseLibrary come il conducente avrebbe utilizzato promesse ES6? - Tuttavia, le promesse presumibilmente Bluebird sono più lenti:

Why are native ES6 promises slower and more memory-intensive than bluebird?

Update2: Ho aggiunto il tag Bluebird - forse i ragazzi che lavorano su Bluebird in grado di fornire ulteriori dettagli se promisifying è davvero meglio che usare di MongoDB proprio implementazione?

risposta

1

È ancora necessario promettere il driver MongoDB?

No, ora hanno incorporato il supporto per le librerie di promesse come bluebird. Penso che dovremmo fare la domanda in modo diverso però:

È una buona idea promettere il driver MongoDB?

Forse, bluebird fa un lavoro migliore per convertire le API di callback in promesse rispetto al driver Mongo internamente grazie al wrapping molto più leggero. Sarà probabilmente più veloce continuare a essere promesso come "nei giorni precedenti".

+5

Personalmente mi piacerebbe vedere un esempio delle differenze. Risparmiare 5 minuti per condividere? –

Problemi correlati