MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

नेवला एक्सप्रेस के साथ हैशेड पासवर्ड अपडेट

अगर आप findOneAndUpdate() . का इस्तेमाल कर रहे हैं अपडेट करने के लिए, pre("findOneAndUpdate") . का उपयोग करके देखें आपके pre("save") . के समान पासवर्ड को संशोधित करने के लिए मिडलवेयर . pre("findOneAndUpdate") हर बार जब आप Model.findOndAndUpate() . का उपयोग करते हैं तो मिडलवेयर को कॉल किया जाएगा अपने मॉडल अपडेट करने के लिए।

आप updateOne() . के साथ भी ऐसा ही कर सकते हैं pre("updateOne") . के साथ

नमूना:

// userSchema--------------------
...
userSchema.pre('save', async function (next) {
    try {
        if (!this.isModified('password')) {
            return next();
        }
        const hashed = await bcrypt.hash(this.password, 10);
        this.password = hashed;
    } catch (err) {
        return next(err);
    }
});

userSchema.pre('findOneAndUpdate', async function (next) {
    try {
        if (this._update.password) {
            const hashed = await bcrypt.hash(this._update.password, 10)
            this._update.password = hashed;
        }
        next();
    } catch (err) {
        return next(err);
    }
});

// changepass--------------------
...
if(valid){

    //" ?? update password and hash ?? "
    const result = await db.user.findOneAndUpdate(
        { username: req.body.username },
        { password: req.body.newPassword },
        { useFindAndModify: false }
    ); 
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. TypeError को कैसे हल करें:कॉलबैक। लागू कोई फ़ंक्शन नहीं है?

  2. MongoRepository गतिशील प्रश्न

  3. mongoengine कनेक्शन और कई डेटाबेस

  4. MongoDB शेल के लिए डिफ़ॉल्ट डेटाबेस सेट करना

  5. MondoDB में नेस्टेड सरणी का बहु अद्यतन कैसे करें?