1. koa2 使用方法:

  1.  安装指令是: npm install koa2
  2. 使用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();

      

  3. 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! ")
}
})

  

  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动态添加路由

     
    // 请求方式: 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.路由中间件:

  1.  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='错误页面!'
}
})
  1. 第三放中间件

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

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

  3. 安装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
    })
  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

        // 引入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

    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
    {}

      

koa2 的使用方法:(一)的更多相关文章

  1. javaSE27天复习总结

    JAVA学习总结    2 第一天    2 1:计算机概述(了解)    2 (1)计算机    2 (2)计算机硬件    2 (3)计算机软件    2 (4)软件开发(理解)    2 (5) ...

  2. uni-app开发的应用(小程序,app,web等),使用Node+Koa2开发的后端程序接收上传文件的方法

    uni-app使用使用Node+Koa2开发的后端程序接收上传的文件 通过gitbook浏览此随笔 通过其它客户端上传(h5,小程序等),接收方法一致 使用koa接收时,我们需安装一个中间件koa-b ...

  3. koa2 use里面的next到底是什么

    koa2短小精悍,女人不爱男人爱. 之前一只有用koa写一点小程序,自认为还吼吼哈,知道有一天某人问我,你说一下 koa或者express中间件的实现原理.然后我就支支吾吾,好久吃饭都不香. 那么了解 ...

  4. koa2 controller中实现类似sleep的延迟功能

    今天有同事问我如何在koa2中的controller中使用延迟执行的功能,他直接在controller中使用setTimeout,但是没效果. 错误的代码类似下面这样: // 错误的方法 export ...

  5. Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...

  6. koa2教程(一)-快速开始

    来自Koa官网对于Koa的简介: koa 是由 Express 原班人马打造的,致力于成为一个更小.更富有表现力.更健壮的 Web 框架. 使用 koa 编写 web 应用,通过组合不同的 async ...

  7. vue2.0+koa2+mongodb实现注册登录

    前言 前段时间和公司一个由技术转产品的同事探讨他的职业道路,对我说了一句深以为然的话: "不要把自己禁锢在某一个领域,技术到产品的转变,首先就是思维上的转变.你一直做前端,数据的交互你只知道 ...

  8. [转]Node.js 应用:Koa2 使用 JWT 进行鉴权

    本文转自:https://www.cnblogs.com/linxin/p/9491342.html 前言 在前后端分离的开发中,通过 Restful API 进行数据交互时,如果没有对 API 进行 ...

  9. Node.js 应用:Koa2 使用 JWT 进行鉴权

    前言 在前后端分离的开发中,通过 Restful API 进行数据交互时,如果没有对 API 进行保护,那么别人就可以很容易地获取并调用这些 API 进行操作.那么服务器端要如何进行鉴权呢? Json ...

随机推荐

  1. [工具-001]C++更换EXE的ICON图标

    我们都知道每个可执行文件EXE都会有自己的图标,它可以在项目生成的时候进行指认,但是有时候我们会遇到两种情况:1.没有源代码,2.我们的项目很多,一个个进行更换很耗时.本人就是因为接到这么一个需求,要 ...

  2. Mysql基础(二)

    多表连接 #多表查询 /* sql99标准 等值连接 ①多表等值连接的结果为多表的交集部分 ② n个连接至少需要 n-1个连接 ③一般需要为表起别名 ④可以搭配前面介绍的所有子句的使用,比如排序,分组 ...

  3. php实现ajax请求的方法

    php实现ajax请求的方法 Ajax页面:第一,了解底层逻辑,正是平常的1个提交在无刷新的条件下发出请求后完成回应,之后去针对你需要的条件来做动作. <!DOCTYPE html> &l ...

  4. cisco-GNS3-pix防火墙基本配置实操(持续更新)

    一.ASA和PIX基础配置 1.ASA防火墙配置 1.GNS配置 因为使用的GNS3的版本可能不同,gns配置asa防火墙的步骤可能不同 在低版本的gns中直接在qemu选项里可以直接配置,参考:ht ...

  5. Linux (七)权限控制

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1. 概述 Linux需要对登录用户读写执行文件.进入目录.查看增删目录内容等操作进行控制,不能任由用户 ...

  6. Java实现洛谷 P1007独木桥

    题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们.士兵 ...

  7. Java实现 蓝桥杯 算法提高 周期字串

    算法提高 周期字串 时间限制:1.0s 内存限制:256.0MB 问题描述 右右喜欢听故事,但是右右的妈妈总是讲一些"从前有座山,山里有座庙,庙里有个老和尚给小和尚讲故事,讲的什么呢?从前有 ...

  8. Java实现最小费用最大流问题

    1 问题描述 在最大流有多组解时,给每条边在附上一个单位费用的量,问在满足最大流时的最小费用是多少? 2 解决方案 下面代码所使用的测试数据如下图: package com.liuzhen.pract ...

  9. MySQL数据库基本使用(DDL)

    MySQL是一种开源的关系型数据库管理系统,并且因为其性能.可靠性和适应性而备受关注.下面是最近一个月MySQL.Oracle.SQL Server的百度指数搜索指数对比: 可以看到,在最近一个月,M ...

  10. Hive的压缩存储和简单优化

    一.Hive的压缩和存储 1,MapReduce支持的压缩编码 压缩格式 工具 算法 文件扩展名 是否可切分 对应的编码/解码器 DEFLATE 无 DEFLATE .deflate 否 org.ap ...