खोज…


टिप्पणियों

मंगोलों में, मध्यवर्तियों को pre और post हुक भी कहा जाता है।

मिडलवेयर दो तरह के होते हैं

ये दोनों मिडलवेयर प्री और पोस्ट हुक का समर्थन करते हैं।

  1. दस्तावेज़ मिडिलवेयर

    दस्तावेज़ कार्यों के लिए इसका समर्थन init , validate , save और remove

  1. क्वेरी मिडिलवेयर

    इसके क्वेरी कार्यों की count , find , findOne , findOneAndRemove , findOneAndUpdate , insertMany और update लिए इसका समर्थन किया गया है।


प्री और पोस्ट हुक

प्री हुक के दो प्रकार हैं

  1. धारावाहिक

    जैसा कि नाम से ही पता चलता है, इसका क्रियान्वयन धारावाहिक क्रम में किया जाता है यानी एक के बाद एक

  1. समानांतर

    समानांतर मिडलवेयर अधिक महीन दानेदार फ्लो नियंत्रण प्रदान करता है और hooked method को तब तक निष्पादित नहीं done है जब तक कि सभी समानांतर मिडलवेयर द्वारा कॉल नहीं done जाता है।

पोस्ट मिडिलवेयर को hooked method बाद निष्पादित किया hooked method और इसके सभी pre मिडलवेयर को पूरा किया गया है।


हुक किए गए तरीके दस्तावेज़ मिडलवेयर द्वारा समर्थित कार्य हैं। init, validate, save, remove

सहेजने से पहले उपयोगकर्ता पासवर्ड के लिए मिडलवेयर

यह Serial Document Middleware का एक उदाहरण है

इस उदाहरण में, हम एक मिडलवेयर लिखेंगे जो डेटाबेस में सेव करने से पहले प्लेन टेक्स्ट पासवर्ड को हैशेड पासवर्ड में बदल देगा।

नया उपयोगकर्ता बनाते समय या मौजूदा उपयोगकर्ता विवरण को अपडेट करते समय यह मिडलवेयर स्वचालित रूप से किक करेगा।


FILENAME: User.js

// lets import mongoose first
import mongoose from 'mongoose'

// lets create a schema for the user model
const UserSchema = mongoose.Schema(
  {
    name: String,
    email: { type: String, lowercase: true, requird: true },
    password: String,
  },
);


/**
 * This is the middleware, It will be called before saving any record
 */
UserSchema.pre('save', function(next) {

  // check if password is present and is modified.
  if ( this.password && this.isModified('password') ) {

    // call your hashPassword method here which will return the hashed password.
    this.password = hashPassword(this.password);

  }

  // everything is done, so let's call the next callback.
  next();

});


// lets export it, so we can import it in other files.
export default mongoose.model( 'User', UserSchema );

अब हर बार जब हम किसी उपयोगकर्ता को बचाते हैं, तो यह मिडलवेयर यह जाँच करेगा कि क्या पासवर्ड सेट है और इसे संशोधित किया गया है (यदि ऐसा नहीं है तो हम हैश उपयोगकर्ताओं के पासवर्ड को संशोधित नहीं करेंगे।)


FILENAME: App.js

import express from 'express';
import mongoose from 'mongoose';

// lets import our User Model
import User from './User';

// connect to MongoDB
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://127.0.0.1:27017/database');


let app = express();
/* ... express middlewares here .... */


app.post( '/', (req, res) => {

  /*
    req.body = {
      name: 'John Doe',
      email: '[email protected]',
      password: '!trump'
    }
   */

  // validate the POST data

  let newUser = new User({
    name: req.body.name,
    email: req.body.email,
    password: req.body.password,
  });

  newUser.save( ( error, record ) => {
    if (error) {
      res.json({
        message: 'error',
        description: 'some error occoured while saving the user in database.'
      });
    } else {
      res.json({
        message: 'success',
        description: 'user details successfully saved.',
        user: record
      });
    }
  });

});



let server = app.listen( 3000, () => {
    console.log(`Server running at http://localhost:3000` );
  }
);


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow