ÀÖÓãµç¾º

  • ½ÌÓýÐÐÒµA¹ÉIPOµÚÒ»¹É£¨¹ÉƱ´úÂë 003032£©

    È«¹ú×Éѯ/ͶËßÈÈÏߣº400-618-4000

    ExpressÓÐÄÄЩÖмä¼þ£¿Öмä¼þ³£¹æ²Ù×÷·½·¨

    ¸üÐÂʱ¼ä:2023Äê09ÔÂ12ÈÕ11ʱ27·Ö À´Ô´:ÀÖÓãµç¾º ä¯ÀÀ´ÎÊý:

    ºÃ¿Ú±®ITÅàѵ

    Öмä¼þ(Middleware )£¬ÌØÖ¸ÒµÎñÁ÷³ÌµÄÖм䴦Àí»·½Ú¡£ÀýÈ繤³§ÒªÅÅ·ÅÉú²úÖвúÉúµÄÎÛË®£¬¾Í±ØÐëÒªÏȽ«ÎÛË®¾»»¯ÒÔ´ïµ½Åŷűê×¼Ä㣬´¦ÀíÎÛË®µÄʱºò£¬¾­¹ýµÄÈý¸ö´¦Àí»·½Ú£¬¾Í¿ÉÒÔ½Ð×öÖмä¼þ¡£

    1665643698803_Öмä¼þ.png

    Express Öмä¼þµÄ¸ÅÄî

    Express µÄÖмä¼þ£¬±¾ÖÊÉϾÍÊÇÒ»¸ö function ´¦Àíº¯Êý£¬ Öмä¼þº¯ÊýµÄÐβÎÁбíÖУ¬±ØÐë°üº¬ next ²ÎÊý¡£¶øÂ·ÓÉ´¦Àíº¯ÊýÖÐÖ»°üº¬ req ºÍ resExpress £¬Öмä¼þµÄ¸ñʽÈçÏ£º

    expressÖмä¼þ

    next º¯ÊýÊÇʵÏÖ¶à¸öÖмä¼þÁ¬Ðøµ÷ÓõĹؼü£¬Ëü±íʾ°ÑÁ÷ת¹ØÏµ×ª½»¸øÏÂÒ»¸öÖмä¼þ»ò·ÓÉ¡£ExpressÖмä¼þ´Óµ½ÏìÓ¦µÄÁ÷³ÌÈçÏ£º

    1665644711078_5.png

    ÏÂÃæÎÒÃÇÀ´¿´ExpressÖмä¼þµÄ¼¸ÖÖ³£¹æ²Ù×÷¡£

    Öмä¼þ³£¹æ²Ù×÷

    1. ¶¨ÒåÖмä¼þº¯Êý

    ¿ÉÒÔͨ¹ýÈçϵķ½Ê½£¬¶¨ÒåÒ»¸ö×î¼òµ¥µÄÖмä¼þº¯Êý£º

    //³£Á¿mwËùÖ¸ÏòµÄ£¬¾ÍÊÇÒ»¸öÖмä¼þº¯Êý
    const mw = function (req, res, next){
      console.log('ÕâÊÇÒ»¸ö×î¼òµ¥µÄÖмä¼þº¯Êý'£©
      //×¢Ò⣺ÔÚµ±Ç°Öмä¼þµÄÒµÎñ´¦ÀíÍê±Ïºó£¬±ØÐëµ÷Óà next£¨£©º¯Êý
      //±íʾ°ÑÁ÷ת¹ØÏµ×ª½»¸øÏÂÒ»¸öÖмä¼þ»ò·ÓÉ
      next()
    }


    2. È«¾ÖÉúЧµÄÖмä¼þ

    ¿Í»§¶Ë·¢ÆðµÄÈκÎÇëÇ󣬵½´ï·þÎñÆ÷Ö®ºó£¬¶¼»á´¥·¢µÄÖмä¼þ£¬½Ð×öÈ«¾ÖÉúЧµÄÖмä¼þ¡£ ͨ¹ýµ÷ÓÃapp.use(Öмä¼þº¯Êý)£¬¼´¿É¶¨ÒåÒ»¸öÈ«¾ÖÉúЧµÄÖмä¼þ£¬È«¾ÖÉúЧÖмä¼þµÄʾÀý´úÂëÈçÏ£º

    //³£Á¿mwËùÖ¸ÏòµÄ£¬¾ÍÊÇÒ»¸öÖмä¼þº¯Êý
    const mw = function (req, res, next) {
    console.log('ÕâÊÇÒ»¸ö×î¼òµ¥µÄÖмä¼þº¯Êý’£©
      next()
    }
    
    //È«¾ÖÉúЧµÄÖмä¼þ
    app.use(mw)

    3. ¶¨ÒåÈ«¾ÖÖмä¼þµÄ¼ò»¯ÐÎʽ
    ¶¨ÒåÈ«¾ÖÖмä¼þµÄ¼ò»¯ÐÎʽ¿ÉÒԲο¼ÈçÏ´úÂ룺

    //È«¾ÖÉúЧµÄÖмä¼þ
    app.use(function (req, res, next) {
      console.log£¨’ÕâÊÇÒ»¸ö×î¼òµ¥µÄÖмä¼þº¯Êý’£©
      next()
    }£©

    4. Öмä¼þµÄ×÷ÓÃ

    ¶à¸öÖмä¼þÖ®¼ä£¬¹²Ïíͬһ·ÝreqºÍres¡£»ùÓÚÕâÑùµÄÌØÐÔ£¬ÎÒÃÇ¿ÉÒÔÔÚÉÏÓεÄÖмä¼þÖУ¬Í³Ò»Îªreq »òres ¶ÔÏóÌí¼Ó×Ô¶¨ÒåµÄÊôÐÔ»ò·½·¨£¬¹©ÏÂÓεÄÖмä¼þ»ò·ÓɽøÐÐʹÓá£

    1665645930390_6.png

    5. ¶¨Òå¶à¸öÈ«¾ÖÖмä¼þ

    ¿ÉÒÔʹÓÃapp.use() Á¬Ðø¶¨Òå¶à¸öÈ«¾ÖÖмä¼þ¡£¿Í»§¶ËÇëÇóµ½´ï·þÎñÆ÷Ö®ºó£¬»á°´ÕÕÖмä¼þ¶¨ÒåµÄÏȺó˳ÐòÒÀ´Î½øÐе÷Óã¬Ê¾Àý´úÂëÈçÏ£º

    app.use(function(req,res,next){//µÚ1¸öÈ«¾ÖÖмä¼þ
      console.log('µ÷ÓÃÁ˵Ú1¸öÈ«¾ÖÖмä¼þ'£©
    next()
    }£©
    app.use(function(req,res,next){//µÚ2¸öÈ«¾ÖÖмä¼þ
    console.log('µ÷ÓÃÁ˵Ú2¸öÈ«¾ÖÖмä¼þ'£©
    next()
    1}£©
    app.get£¨'/user'£¬£¨req,res)=>{//ÇëÇóÕâ¸ö·ÓÉ£¬»áÒÀ´Î´¥·¢ÉÏÊöÁ½¸öÈ«¾ÖÖмä¼þ
    res.send('Home page.')
    }£©

    6. ¾Ö²¿ÉúЧµÄÖмä¼þ

    ²»Ê¹ÓÃapp.use() ¶¨ÒåµÄÖмä¼þ£¬½Ð×ö¾Ö²¿ÉúЧµÄÖмä¼þ£¬Ê¾Àý´úÂëÈçÏ£º

    //¶¨ÒåÖмä¼þº¯Êýmw1
    const mw1 = function(req, res, next) (
    cosole.log('ÕâÊÇÖмä¼þº¯Êý')
      next()
    }
    //mN1 
    Õâ¸öÖмä¼þÖ»ÔÚ“µ±Ç°Â·ÓÉÖÐÉúЧ”£¬ÕâÖÖÓ÷¨ÊôÓÚ“¾Ö²¿ÉúЧµÄÖмä¼þ”
    app.get('/',mwi,function(req,res){
    res.send('Home page.')
    })
    //mw1Õâ¸öÖмä¼þ²»»áÓ°ÏìÏÂÃæÕâ¸ö·ÓÉ£¡+
    app.get('/user', 
    function(req, res) { res.send('User page.') })

    7. ¶¨Òå¶à¸ö¾Ö²¿Öмä¼þ

    ¿ÉÒÔÔÚ·ÓÉÖУ¬Í¨¹ýÈçÏÂÁ½Öֵȼ۵ķ½Ê½£¬Ê¹Óöà¸ö¾Ö²¿Öмä¼þ£º

    //ÒÔÏÂÁ½ÖÖд·¨ÊÇ“ÍêÈ«µÈ¼Û“µÄ£¬¿É¸ù¾Ý×Ô¼ºµÄϲºÃ£¬Ñ¡ÔñÈÎÒâÒ»ÖÖ·½Ê½½øÐÐʹÓÃ
    apg.get('/',mw1,mw2,(req,res)=>{res.send('Home page.')})
    app.get('/',[mw1,mw2],(req,res)=>{ res.send('Home page.') })

    ×¢Ò⣺һ¶¨ÒªÔÚ·ÓÉ֮ǰע²áÖмä¼þ£¬¿Í»§¶Ë·¢Ë͹ýÀ´µÄÇëÇ󣬿ÉÒÔÁ¬Ðøµ÷Óöà¸öÖмä¼þ½øÐд¦Àí¡£Ö´ÐÐÍêÖмä¼þµÄÒµÎñ´úÂëÖ®ºó£¬²»ÒªÍü¼Çµ÷ÓÃnext() º¯Êý¡£ÎªÁË·ÀÖ¹´úÂëÂß¼­»ìÂÒ£¬µ÷ÓÃnext() º¯Êýºó²»ÒªÔÙд¶îÍâµÄ´úÂë¡£Á¬Ðøµ÷Óöà¸öÖмä¼þʱ£¬¶à¸öÖмä¼þÖ®¼ä£¬¹²Ïíreq ºÍres ¶ÔÏó¡£

    Öмä¼þµÄ·ÖÀà

    ΪÁË·½±ã´ó¼ÒÀí½âºÍ¼ÇÒäÖмä¼þµÄʹÓã¬Express ¹Ù·½°Ñ³£¼ûµÄÖмä¼þÓ÷¨£¬·Ö³ÉÁË5 ´óÀ࣬·Ö±ðÊÇ£º

    ¢ÙÓ¦Óü¶±ðµÄÖмä¼þ

    ¢Ú·Óɼ¶±ðµÄÖмä¼þ

    ¢Û´íÎó¼¶±ðµÄÖмä¼þ

    ¢ÜExpress ÄÚÖõÄÖмä¼þ

    ¢ÝµÚÈý·½µÄÖмä¼þ

    1. Ó¦Óü¶±ðµÄÖмä¼þ

    ͨ¹ýapp.use() »òapp.get() »òapp.post() £¬°ó¶¨µ½app ʵÀýÉϵÄÖмä¼þ£¬½Ð×öÓ¦Óü¶±ðµÄÖмä¼þ£¬´úÂëʾÀýÈçÏ£º

    //Ó¦Óü¶±ðµÄÖмä¼þ£¨È«¾ÖÖмä¼þ£©
    app.use((req,res,next)=>{
      next()
    }£©
    
    //Ó¦Óü¶±ðµÄÖмä¼þ£¨¾Ö²¿Öмä¼þ£©
    app.get('/',mwi,(req, res) =>{
      res.send('Home page.')
    }£©

    2. ·Óɼ¶±ðµÄÖмä¼þ

    °ó¶¨µ½express.Router() ʵÀýÉϵÄÖмä¼þ£¬½Ð×ö·Óɼ¶±ðµÄÖмä¼þ¡£ËüµÄÓ÷¨ºÍÓ¦Óü¶±ðÖмä¼þûÓÐÈκÎÇø±ð¡£Ö»²»¹ý£¬Ó¦Óü¶±ðÖмä¼þÊǰ󶨵½app ʵÀýÉÏ£¬Â·Óɼ¶±ðÖмä¼þ°ó¶¨µ½router ʵÀýÉÏ£¬´úÂëʾÀýÈçÏ£º

    var app = express()
    var router = express.Router(
    
    //·Óɼ¶±ðµÄÖмä¼þ
    router.use(function (req, res, next) (
      console.log('Time:', Date.now())
      next()
    }£©
    
    app.use('/', router)

    3. ´íÎó¼¶±ðµÄÖмä¼þ

    ´íÎó¼¶±ðÖмä¼þµÄ×÷Óãº×¨ÃÅÓÃÀ´²¶»ñÕû¸öÏîÄ¿Öз¢ÉúµÄÒì³£´íÎ󣬴Ӷø·ÀÖ¹ÏîÄ¿Òì³£±ÀÀ£µÄÎÊÌâ¡£

    ¸ñʽ£º´íÎó¼¶±ðÖмä¼þµÄfunction ´¦Àíº¯ÊýÖУ¬±ØÐëÓÐ4 ¸öÐβΣ¬ÐβÎ˳Ðò´Óǰµ½ºó£¬·Ö±ðÊÇ(err, req, res, next)¡£

    app.get('/', function (req, res){             // 1.·ÓÉ
      throw new 
    Error£¨'·þÎñÆ÷ÄÚ²¿·¢ÉúÁË´íÎó£¡'£© // 1.1Å׳öÒ»¸ö×Ô¶¨ÒåµÄ´íÎó
      res.send('Home 
    Page.')
    })
    app.use(function(err,req,res,next){          // 2.´íÎó¼¶±ðµÄÖмä¼þ
    console.log('·¢ÉúÁË´íÎó£º'+err.message)    //2.1ÔÚ·þÎñÆ÷´òÓ¡´íÎóÏûÏ¢
      res.send('Error!'+ 
    err.message)            //2.2Ïò¿Í»§¶ËÏìÓ¦´íÎóÏà¹ØµÄÄÚÈÝ
    }£©

    ×¢Ò⣺´íÎó¼¶±ðµÄÖмä¼þ£¬±ØÐë×¢²áÔÚËùÓзÓÉÖ®ºó!

    4. ExpressÄÚÖõÄÖмä¼þ

    ×ÔExpress 4.16.0 °æ±¾¿ªÊ¼£¬Express ÄÚÖÃÁË3 ¸ö³£ÓõÄÖмä¼þ£¬¼«´óµÄÌá¸ßÁËExpress ÏîÄ¿µÄ¿ª·¢Ð§ÂʺÍÌåÑ飺

    ¢Ùexpress.static¿ìËÙÍйܾ²Ì¬×ÊÔ´µÄÄÚÖÃÖмä¼þ£¬ÀýÈ磺HTML Îļþ¡¢Í¼Æ¬¡¢CSS ÑùʽµÈ(ÎÞ¼æÈÝÐÔ)

    ¢Úexpress.json½âÎöJSON ¸ñʽµÄÇëÇóÌåÊý¾Ý(ÓмæÈÝÐÔ£¬½öÔÚ4.16.0+ °æ±¾ÖпÉÓÃ)

    ¢Ûexpress.urlencoded½âÎöURL-encoded ¸ñʽµÄÇëÇóÌåÊý¾Ý(ÓмæÈÝÐÔ£¬½öÔÚ4.16.0+ °æ±¾ÖпÉÓÃ)

    //ÅäÖýâÎö application/json ¸ñʽÊý¾ÝµÄÄÚÖÃÖмä¼þ
    app.use(express.json())
    //ÅäÖýâÎö application/x-ww-form-urlencoded ¸ñʽÊý¾ÝµÄÄÚÖÃÖмä¼þ
    app.us(express.urlencoded({ extended:false }))

    5. µÚÈý·½µÄÖмä¼þ

    ·ÇExpress ¹Ù·½ÄÚÖõÄ£¬¶øÊÇÓɵÚÈý·½¿ª·¢³öÀ´µÄÖмä¼þ£¬½Ð×öµÚÈý·½Öмä¼þ¡£ÔÚÏîÄ¿ÖУ¬´ó¼Ò¿ÉÒÔ°´ÐèÏÂÔØ²¢ÅäÖõÚÈý·½Öмä¼þ£¬´Ó¶øÌá¸ßÏîÄ¿µÄ¿ª·¢Ð§ÂÊ¡£

    ÀýÈ磺ÔÚexpress@4.16.0 ֮ǰµÄ°æ±¾ÖУ¬¾­³£Ê¹ÓÃbody-parser Õâ¸öµÚÈý·½Öмä¼þ£¬À´½âÎöÇëÇóÌåÊý¾Ý¡£Ê¹Óò½ÖèÈçÏ£º

    ¢ÙÔËÐÐnpm install body-parser°²×°Öмä¼þ

    ¢ÚʹÓÃrequireµ¼ÈëÖмä¼þ

    ¢Ûµ÷ÓÃapp.use() ×¢²á²¢Ê¹ÓÃÖмä¼þ

    ×¢Ò⣺Express ÄÚÖõÄexpress.urlencodedÖмä¼þ£¬¾ÍÊÇ»ùÓÚbody-parser Õâ¸öµÚÈý·½Öмä¼þ½øÒ»²½·â×°³öÀ´µÄ¡£

    0 ·ÖÏíµ½£º
    ºÍÎÒÃÇÔÚÏß½»Ì¸£¡
    ¡¾ÍøÕ¾µØÍ¼¡¿¡¾sitemap¡¿