簡體   English   中英

ZCCADCDEDB567ABAE643E15DCF0974E503Z 中間件 findOneAndUpdate 問題

[英]Mongoose Middleware findOneAndUpdate Issue

我使用 aes-256 加密我的值並保存在數據庫中。 我使用前后 mongoose 中間件在 POST 之前加密並在 GET 之前解密。 我有一個要查找OneAndUpdate 的方案。 為此,我需要解密條件的 mongoose 值,但我不知道該怎么做。

加密 POST 數據

userSchema.pre('save', function (next) {
  var data = Encrypt(this);
this.phone = data.phone //asded324ffdsf
}

解密 GET 數據

userSchema.post('findOne', function (document) {
  var data = Decrypt(document);
  if(document.phone){
    document.phone = data.phone; //123456780
  }
});

要求

user.findOneAndUpdate({phone:'1234567890'},{ $set: { pwd_token: random } }); //Query fails as the number is asded324ffdsf

如何從我的數據庫中解密電話號碼並在此處與給定號碼進行比較?

userSchema.pre('findOneAndUpdate', function (document) {} 應該怎么做?

請注意,您無法訪問pre('findOneAndUpdate')查詢中間件中正在更新的文檔。 為了訪問文檔,您需要對文檔執行顯式查詢。

有關詳細信息,請參閱文檔: https://mongoosejs.com/docs/middleware.html#notes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM