Node.js, testant une sauvegarde et chargement mongodb
-
12-11-2019 - |
Question
Peut-être que j'ai juste du mal à comprendre le callbackyness, mais je ne peux pas trouver un moyen de tester une sauvegarde et de charger dans Node.js.
Mon test est le suivant:
vows.describe('Saving').addBatch({
'Single item can be saved':{
topic:function () {
myStore.saveItems(1, [{id:3,name:'squat'}]);
myStore.getItems(1, this.callback);
},
'saved item is returned by getItems':function (err, items) {
assert.equal(items.length, 1);
assert.equal(items[0].deviceId, 1);
assert.equal(items[0].id, 3);
}
}
}).export(module);
Avec ce temps testé:
exports.saveItems = function (deviceId, items) {
var itemsCollection = db.collection('items');
itemsCollection.find({deviceId:deviceId}).toArray(function (err, existingItems) {
_.each(items, function (item) {
item['deviceId'] = deviceId;
var existingItem = _.find(existingItems, function (existingItem) {
return existingItem.id === item.id
});
if (typeof(existingItem) === 'undefined') {
itemsCollection.save(item);//callback here?
} else {
}
});
});
};
exports.getItems = function (deviceId, callback) {
var itemsCollection = db.collection('items');
itemsCollection.find({deviceId:deviceId}).toArray(callback);
};
Y a-t-il un moyen de passer un rappel à saveItems
de telle sorte que getItems
n'est pas appelé avant tout Les sauvegardes de Mongo sont complètes?
Pas de solution correcte
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow