koa2 的使用方法:(一)

1. koa2 使用方法:

  1.  安裝指令是: npm install koa2
  2. 使用koa2 建立項目工程:javascript

1.  koa2  (項目工程)
2.  進入項目工程:  cd  進入您所建立的項目工程
3.  npm   install   // 安裝項目依賴;
4.  npm  start      //  啓動項目

  

2. async 和 await:

  1. async (異步)html

     

     async function test (){
         return 'Hello async'
     }
     const result = test()
     console.log(result)
    

      

  2. await (等待)java

    ​
    /**
    *  await 等待async方法執完畢;
    *  註釋: await 必須在async方法中能夠使用由於await訪問自己就會形成程序堵塞:
    **/
    function getDate(){
        return 'xixihehe';
    }
    async function testAsync(){
        return "Hello async"
    }
    async function test(){
        const va = await getDate()
        const vb = await testAsync()
        console.log(va, vb)
    }
    test();
    

      

     

  3. await 和 async同時使用:npm

    function Date (){
        return new Promise (resolve=>{
            setTimeoit(()=>resolve('log_time_value'),10000)
        })
    }
    async function test(){
        const v = await Date()
        console.log(v)
    }
    test()
     
    

      

3. koa2 路由 :

  1. koa2 使用路由必需要安裝模塊:瀏覽器

// 安裝路由的命令提示框的指令是:
npm  install --save koa-router
//==================================================
 const koa = require("koa")
 //引入路由
 const  router = require("koa-router")
 const app = new Date()
 router.get('/',(ctx,next)=>{
     ctx.body='Hello koa'
 })
router.get('/news',(cty,next)=>{
    cty.body='新路由'
})
//啓動路由;
app.use(router.routes())
//做用: 能夠看到router,allowedMethods()用在了路由匹配router.routeres()以後,因此在但全部路由中間最後調用,此時根據ctx,status,設置,response 相應頭
app.use(router.allowedMethods())
app.listen(3000,(err)=>{
    if(!err){
        console.log("SERVER CREATE SCCESS! ")
    }
})

  

  1. get 路由傳值:服務器

     const koa = require("koa")
     const Router = require("koa-router")
     const app = new koa()
     const router = new router()
     router.get('/',(ctx,next)=>{
         ctx.bocy ='Hellp koa'
     })
    router.get('/users',(ctx,next)=>{
        let url = ctx.url;
        //從requset中獲取get請求
        let req_query = request.query
        let req_quertString = request.queryString;
        //從上下文直接獲取
        let ctx_query = ctx.query;
        let ctx_queryString = ctx.queryString;
        crx.body={
            url,
            req.query,
            req_queryString,
            ctx.query,
            ctx.queryString,
        }
    })
    app.use(router.routes())
    app.use(router.allowedMethods())
    app.listen(3000,(err)=>{
        if(!err){
            console.log("SERVER CREATE SCCESS! ")
        }
    })
     
    

      

  2. koa動態添加路由cookie

     
    // 請求方式: http:// 域名/ user/123
    router.get('/users/:aid',async(ctx)=>{
        console,log(ctx.mparams)// {aid:"123"} //獲取動態路由的數據
         ctx.body='商品頁面';
     })
    

      

4. 中間件:

  1. 應用級中間件:session

const koa = require('koa')
const Router = require('koa-router')
const app = new koa();
const router = new Router()
app.use(async(ctx,next)=>{
    console.log(new Date())
    awaait next()
})
router.get('/',(ctx,next)=>{
    ctx.body='Hello koa'
})
router.get("/users",(ctx,next)=>{
    ctx.body='路由'
})
app.use(router.routes())
app.use(router.allowedMethods())
app.listen(3000,(err)=>{
    if(!err){
        console.log("SERVER CREATE SCCESS! ")
    }
})

  

 

2.路由中間件:app

  1.  router.get('/',(ctx,next)=>{
         console.log(1)
         next();
     })
    router.get('/',(ctx)=>{
        ctx.body='Hello koa'
    })
    

    3.錯誤處理中間件:koa

1  app.use(async,(ctx,next)=>{
2      next();
3      if(ctx,status==404){
4          ctx.sttaus=404;
5          ctx.body='錯誤頁面!'
6      }
7  })

 

  1. 第三放中間件

    1  const static = require("koa-static")
    2  const staticPath = './static';
    3  app.use(static{
    4         path.join(_dirname,staticPah)
    5          })
    6  const bodyParser = require("koa-bodyparser");
    7 app.use(bodyParser)
    8  

     

  2. koa-bodyparser 中間件:

    安裝 koa-bodyParser 模塊的指令是: npm install --save koa-bodyParser

     

     

  3. 安裝koa-bodyparser 引入配置中間件

    1 var koa = require('koa')
    2 var bodparser = require('koa-bodyparser')
    3 var app = new koa()
    4 app.use(bodyparser())
    5 app.use(async ctx=>{
    6     ctx.body= ctx.request.body
    7 })
    8  

     

  4. koa-static 靜態資源 中間件

    安裝 koa-static的指令是:

    npm install --save koa-static

  5. 引入配置文件:

     const static = require('koa-static')
    app.use(static(path.join(_dirname).'public'))

    5. Session koa-session的使用

  6. session 和 cookie 的區別:

    session是一種記錄客戶狀態的機制,和cookie不一樣發是,cookie 是保存在客戶端的瀏覽器中,而 session是保存在服務器上的,

  7. 安裝指令是:

    • npm install koa-session --save

       

       1  // 引入session
       2 const session = requure('koa-session')
       3 // 設置中間件
       4 app.keys = ['some secret hurr'];
       5 const CONFIG = {
       6    key: 'koa:sess',   //cookie key (default is koa:sess)
       7    maxAge: 86400000,  // cookie的過時時間 maxAge in ms (default is 1 days)
       8    overwrite: true,  //是否能夠overwrite    (默認default true)
       9    httpOnly: true, //cookie是否只有服務器端能夠訪問 httpOnly or not (default true)
      10    signed: true,   //簽名默認true
      11    rolling: false,  //在每次請求時強行設置cookie,這將重置cookie過時時間(默認:false)
      12    renew: false,  //(boolean) renew session when session is nearly expired,
      13 };
      14 app.use(session(CONFIG, app));
      15 // 使用
      16      設置值 ctx.session.username = '柚子小哥哥!';
      17      獲取值 ctx.session.username

       

6. ejs:

  1. 安裝 koa-views 和 ejs

    1. 安裝 koa-views :

    npm install --save koa-views

    1. 安裝ejs :

    npm install ejs --save

  2. 引入koa-views 胚珠中間件

     const views = require('koa-views')
     app.use(views('views',{map:{html:'ejs'}}))
    

      

  3. 使用ejs 

  4.  router.get('/add',async(ctx){
                let title = 'hello koa2'
        await ctx.render(index',{
            title
       {}
    
相關文章
相關標籤/搜索