koa2使用方法(一):

扶开诚
2023-12-01

1. koa2 的使用教程:

  1. koa2 的使用教程:
npm install koa2
  1. 使用koa2 创建项目工程:

    1.  koa2  (项目工程)
    2.  进入项目工程:  cd  进入您所创建的项目工程
    3.  npm   install   // 安装项目依赖;
    4.  npm  start      //  启动项目
    

2. async 和 await:

  1. async (异步)

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


/**
*  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();
  1. await 和 async同时使用:

    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! ")
        }
    })
    
  2. 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! ")
        }
    })
    
  3. koa动态添加路由

    // 请求方式: http:// 域名/ user/123
    router.get('/users/:aid',async(ctx)=>{
        console,log(ctx.mparams)// {aid:"123"} //获取动态路由的数据
         ctx.body='商品页面';
     })
    

4. 中间件:

  1. 应用级中间件:

    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. 路由中间件:

     router.get('/',(ctx,next)=>{
         console.log(1)
         next();
     })
    router.get('/',(ctx)=>{
        ctx.body='Hello koa'
    })
    
  3. 错误处理中间件:

     app.use(async,(ctx,next)=>{
         next();
         if(ctx,status==404){
             ctx.sttaus=404;
             ctx.body='错误页面!'
         }
     })
    
  4. 第三放中间件:

     const static = require("koa-static")
     const staticPath = './static';
     app.use(static{
            path.join(_dirname,staticPah)
             })
     const bodyParser = require("koa-bodyparser");
    app.use(bodyParser)
    
  5. koa-bodyparser 中间件:

    安装 koa-bodyParser 模块的指令是:
    npm install --save koa-bodyParser

  6. 安装koa-bodyparser 引入配置中间件

    var koa = require('koa')
    var bodparser = require('koa-bodyparser')
    var app = new koa()
    app.use(bodyparser())
    app.use(async ctx=>{
        ctx.body= ctx.request.body
    })
    
  7. koa-static 静态资源 中间件

    安装 koa-static的指令是:

    npm install --save koa-static

  8. 引入配置文件:

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

    5. Session koa-session的使用

  9. session 和 cookie 的区别:

    session是一种记录客户状态的机制,和cookie不同发是,cookie 是保存在客户端的浏览器中,而 session是保存在服务器上的,

  10. 安装指令是:

    • npm install koa-session --save
     // 引入session
    const session = requure('koa-session')
    // 设置中间件
    app.keys = ['some secret hurr'];
    const CONFIG = {
       key: 'koa:sess',   //cookie key (default is koa:sess)
       maxAge: 86400000,  // cookie的过期时间 maxAge in ms (default is 1 days)
       overwrite: true,  //是否可以overwrite    (默认default true)
       httpOnly: true, //cookie是否只有服务器端可以访问 httpOnly or not (default true)
       signed: true,   //签名默认true
       rolling: false,  //在每次请求时强行设置cookie,这将重置cookie过期时间(默认:false)
       renew: false,  //(boolean) renew session when session is nearly expired,
    };
    app.use(session(CONFIG, app));
    // 使用
         设置值 ctx.session.username = '柚子小哥哥!';
         获取值 ctx.session.username
    

6. ejs:

  1. 安装 koa-views 和 ejs

    1. 安装 koa-views :

      npm install --save koa-views

    2. 安装ejs :

      npm install ejs --save

  2. 引入koa-views 中间件

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

     router.get('/add',async(ctx){
                let title = 'hello koa2'
        await ctx.render(index',{
            title
       {}
    
 类似资料: