[英]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.