Ich versuche, mit mongo db (3.0.6) auf mehrere Arten Verbindung mit nodejs nativen Treiber zu verbinden. Ich habe gerade angefangen, meine Bewerbung zu schreiben, also ist alles, was ich dort habe, Mongodb und Mokka.MongoClient Callback nie aufgerufen
Was auch immer ich versuche, kann ich nicht zu Callback/Promise Ausführung. Ich weiß, es kann passieren, wenn die Verbindung nicht hergestellt werden kann, aber ich bekomme keine Ausnahme entweder:
Hier sind einige der Möglichkeiten, die ich versucht habe:
it('init with Promise', function() {
var MongoClient = require('mongodb').MongoClient,
test = require('assert');
console.log("1\n");
//, { server: { auto_reconnect: true } }
MongoClient.connect('mongodb://localhost:27017/session').then(function (db) {
// This line is never called
console.log("2\n");
// Get the collection
var col = db.collection('insert_many_with_promise');
col.insertMany([{a: 1}, {a: 2}]).then(function (r) {
console.log("3\n");
test.equal(2, r.insertedCount);
// Finish up test
db.close();
});
}).catch(function (error) {
console.info(error);
});
})
it('init db', function() {
var MongoClient = require('mongodb').MongoClient;
var assert = require('assert');
var ObjectId = require('mongodb').ObjectID;
var url = 'mongodb://localhost:27017/test';
var insertDocument = function (db, callback) {
db.collection('restaurants').insertOne({
"address": {
"street": "2 Avenue",
"zipcode": "10075",
"building": "1480",
"coord": [-73.9557413, 40.7720266]
},
"borough": "Manhattan",
"cuisine": "Italian",
"grades": [
{
"date": new Date("2014-10-01T00:00:00Z"),
"grade": "A",
"score": 11
},
{
"date": new Date("2014-01-16T00:00:00Z"),
"grade": "B",
"score": 17
}
],
"name": "Vella",
"restaurant_id": "41704620"
}, function (err, result) {
assert.equal(err, null);
console.log("Inserted a document into the restaurants collection.");
callback();
});
};
EDIT: mongodb Treiberversion : "mongodb": "^ 2.1.4"
Danke, Maurits! Es hat wie ein Zauber funktioniert. Aber es gibt immer noch ein Konzert, das mich nervt. Mein Beispiel war sehr grundlegend, aber was ist, wenn alle meine Versprechen tatsächlich in einem anderen Modul sind, für das ich einen Komponententest schreibe? Die letzte Sache, die ich machen möchte, besteht darin, den Rückruf in meine Geschäftslogik zu übernehmen. – yuranos87