Ошибка Mongoose по обещанию с сохранением?

Когда я пытаюсь получить обещание вернуться с сохранением операции на экземпляр модели. я получаю ошибку: undefined is not a function

instance.save().exec().then(..)

Однако, если я попытаюсь получить обещание с такой моделью, тогда он работает.

model.find(..).exec().then(..)

Невозможно получить обещание сохранить действие. В настоящее время я просто передаю обратный вызов для сохранения функции. Однако, ради согласованности, я хотел бы делать все операции db таким же образом.

2 ответа

Model#save возвращает обещание, поэтому вы должны пропустить .exec():

instance.save().then(...);


Что-то вроде этого?

let mongooseInstance = new MongooseInstance(Obj);
return mongooseInstance
 .save()
 .then(savedObj => {
 if (savedObj) {
 savedObj.someProperty = null;
 success.data = savedObj;
 return Promise.resolve(success);
 } else {
 return Promise.reject(error);
 }
 });

и, возможно, с catch?

mongooseInstance
 .save()
 .then(saved => console.log("saved", saved))
 .catch(err => console.log("err while saving", err));

licensed under cc by-sa 3.0 with attribution.