Używam promisifyAll bluebird z mangustą. Kiedy wywołuję saveAsync (promisified version of save) na obiekcie modelu, rozstrzygnięta wartość wypełnionej obietnicy to tablica z dwoma elementami. Pierwszy to mój zapisany obiekt modelu, drugi to liczba całkowita 1. Nie jestem pewien, co się tutaj dzieje. Poniżej znajduje się przykład kodu służącego do odtworzenia problemu.Mongoose z Bluebird promisifyAll - saveAsync na obiekcie modelu powoduje, że macierz jako rozstrzygnięta wartość obietnicy
var mongoose = require("mongoose");
var Promise = require("bluebird");
Promise.promisifyAll(mongoose);
var PersonSchema = mongoose.Schema({
'name': String
});
var Person = mongoose.model('Person', PersonSchema);
mongoose.connect('mongodb://localhost/testmongoose');
var person = new Person({ name: "Joe Smith "});
person.saveAsync()
.then(function(savedPerson) {
//savedPerson will be an array.
//The first element is the saved instance of person
//The second element is the number 1
console.log(JSON.stringify(savedPerson));
})
.catch(function(err) {
console.log("There was an error");
})
Odpowiedź mogę to
[{"__v":0,"name":"Joe Smith ","_id":"5412338e201a0e1af750cf6f"},1]
Spodziewałem się tylko pierwszy element w tej tablicy, jak model mangusty save() zwraca pojedynczy obiekt.
Każda pomoc będzie bardzo ceniona!
D'oh! Powinienem dokładnie przeczytać dokumentację mangusty! Dzięki! –
@winstonsmith Nigdy nie docs doktryny bardziej bezużyteczne niż dokumenty Mongoose. –
są z pewnością nieco abstrakcyjne. idź do mongooses gitter zapytać społeczność na wypadek, gdy nie rozumiesz w pełni dokumentów. – nottinhill