Я уже создал это и использовал эту модель. Но теперь я добавил @pre<Offer>("save"
, поскольку я хочу сделать несколько проверок данных перед сохранением и соответствующим образом изменить значения.
Моя проблема в том, что когда я сначала делаю обновление, журналы консоли никогда не получают вывод. Тогда я никогда не смогу установить this.isOfferLive = false;
, если я отправлю isOfferLive:true
, поэтому pre
никогда не будет вызываться
Что я по тебе скучаю?
Я использую
"reflect-metadata": "^0.1.13",
"typegoose": "^5.7.2",
"mongoose": "^5.6.3",
emitDecoratorMetadata and experimentalDecorators are be enabled in tsconfig.json
Одна вещь, которую я заметил, заключается в том, что hooks
вызывается Model.create
, но не Model.updateOne
при просмотре журналов консо.
Как мне заставить их также работать при обновлении
Мой класс
@pre<Offer>("save", function(next: HookNextFunction) {
console.log("[**** save]: " + this.isOfferLive);
this.isOfferLive = false;
if (!isOfferValid(this)) {
this.isOfferLive = false;
}
next();
})
export class Offer extends Typegoose {
@prop({ required: true, default: false })
public isOfferLive: boolean;
}
export const Model = new Offer().getModelForClass(Offer);