詳解express與koa中間件執行順序模式分析

//引入 koa模塊

var Koa=require('koa');
var router = require('koa-router')();  /*引入是實例化路由** 推薦*/
var app=new Koa();

//Koa中間件

//匹配任何路由  ,若是不寫next,這個路由被匹配到了就不會繼續向下匹配

//www.域名.com/news
app.use(async (ctx,next)=>{
    console.log('一、koa這是第一個中間件');
    await next();

    console.log('五、koa匹配路由完成之後又會返回來執行中間件');
})
app.use(async (ctx,next)=>{
    console.log('二、koa這是第二個中間件');
    await next();

    console.log('四、koa匹配路由完成之後又會返回來執行中間件');
})

app.use(async (ctx,next)=>{
    console.log('koa這是一箇中間件');
    next();

    if(ctx.status==404){   /*若是頁面找不到*/
        ctx.status = 404;
        ctx.body="這是一個 404 頁面"
        console.log('六、404頁面');
    }else{
        console.log(ctx.url);
        console.log('七、koa匹配路由');
    }
})



router.get('/',async (ctx)=>{

    ctx.body="首頁koa";

})
router.get('/news',async (ctx)=>{

    console.log('三、koa匹配到了news這個路由');
    ctx.body='koa新聞';
})


app.use(router.routes());   /*啓動路由*/
app.use(router.allowedMethods());
app.listen(3002);


/*
訪問:127.0.0.1/3002
* 一、koa這是第一個中間件
二、koa這是第二個中間件
koa這是一箇中間件
/
四、koa匹配路由完成之後又會返回來執行中間件
五、koa匹配路由完成之後又會返回來執行中間件

訪問:127.0.0.1/3002/xxx
一、koa這是第一個中間件
二、koa這是第二個中間件
koa這是一箇中間件
六、404頁面
四、koa匹配路由完成之後又會返回來執行中間件
五、koa匹配路由完成之後又會返回來執行中間件
訪問:127.0.0.1/3002/news
一、koa這是第一個中間件
二、koa這是第二個中間件
koa這是一箇中間件
三、koa匹配到了news這個路由
/news
七、koa匹配路由
四、koa匹配路由完成之後又會返回來執行中間件
五、koa匹配路由完成之後又會返回來執行中間件

* */
/**
 路由中間件
 */


var express=require('express'); /*引入*/

var app=new express();  /*實例化*/



app.use(function(req,res,next){
    console.log('一、express這是第一個中間件');
    next();
    console.log('五、express匹配路由完成之後又會返回來執行中間件');
})

app.use(function(req,res,next){
    console.log('二、express這是第一個中間件');
    next();
    console.log('四、express匹配路由完成之後又會返回來執行中間件');
})


app.get('/',function(req,res){
    res.send('首頁express');

})


app.get('/news',function(req,res){
    console.log('三、express匹配到了news這個路由');
    res.send('expres新聞');
})
/*匹配全部的路由  404*/
app.use(function(req,res){

    console.log('六、express匹配到了news這個路由');
    res.status(404).send('express這是404 表示路由沒有匹配到')

})
app.listen(3001,'127.0.0.1');

/*
*
* 訪問:127.0.0.1/3001
* 一、express這是第一個中間件
二、express這是第一個中間件
四、express匹配路由完成之後又會返回來執行中間件
五、express匹配路由完成之後又會返回來執行中間件
* 訪問:127.0.0.1/3001/xxx
*一、express這是第一個中間件
二、express這是第一個中間件
六、express匹配到了news這個路由
四、express匹配路由完成之後又會返回來執行中間件
五、express匹配路由完成之後又會返回來執行中間件
* 訪問:127.0.0.1/3001/news
一、express這是第一個中間件
二、express這是第一個中間件
三、express匹配到了news這個路由
四、express匹配路由完成之後又會返回來執行中間件
五、express匹配路由完成之後又會返回來執行中間件

* */
相關文章
相關標籤/搜索