美文网首页
koa.js的使用(koa2)

koa.js的使用(koa2)

作者: 蜗牛的学习方法 | 来源:发表于2020-05-28 14:23 被阅读0次

koa与Express简单比较
Express connect 中间件 封装了 路由、视图,
koa co中间件 不包含任何中间件 callback ,需要自己手动引入中间件

koa具有体积小的特点

1、首先新建一个文件夹,下载koa插件

yarn add koa
新建一个my-koa-app.js,编写一个helloWorld的实例。

const Koa = require('koa');
//创建koa实例
const app = new Koa();

//配置路由
app.get('/index',async ctx => {
  console.log(ctx.url)
  ctx.body = '首页';
});

app.listen(8082,()=>{
  console.log('接口已启动')
});

这样一个简单的koa的例子就完成了。

2、koa-router 路由 根据不同的路由获取不同的参数

首先还是要安装koa-router
yarn add koa-router

const Koa = require('koa');
const Router=require('koa-router')
//创建koa实例
const app = new Koa();
const router=new Router();

//配置路由
//静态路由 /index?title  
router.get('/',async ctx=>{
  //ctx 包含了request response
  //获取参数的两种方式 
  //query 是一个对象  querystring() 是一个字符串
  console.log(ctx.request.query)
  console.log(ctx.request.querystring)
  //推荐用法
  console.log(ctx.query)
  console.log(ctx.querystring)
  ctx.body='首页'
})

//动态路由  /index/12
router.get('/about/:id',async ctx=>{
  console.log(ctx.params)
  ctx.body='介绍页面'
})
//启动路由
app
.use(router.routes())
.use(router.allowedMethods()) //官方推荐

app.listen(8082,()=>{
  console.log('接口已启动')
});

结果:


image.png

3、koa中间件与模板的渲染

中间件是koa的精髓,中间件容器是负责各个组件和服务的关联和交互
中间件的执行方式比较像’洋葱模型‘

  • 操作先进后出
  • 有控制先进后出的机制 next
  • 有提前结束的机制
中间件类型
  • 应用级中间件 类似于vue全局导航守卫
  • 路由级中间件 独享路由守卫
  • 错误处理中间件 应用及中间件,处理错误兜底
  • 第三方中间件 koa-bodyparser
末班引擎
  • 模板引擎 ejs
  • koa-bodyparse 中间件与post 请求
  • koa-static 静态资源中间件
//yarn add koa-views ejs
const Koa = require('koa');
const Router = require('koa-router');
const views = require('koa-views');

const app = new Koa();
const router = new Router();

app.use(
  views('page',{
    map:{html:'ejs'}
  })
)

router.get('/', async (ctx, next) => {
  console.log('路由级中间件1');
  await next();
});

router.get('/', async (ctx) => {
  const txt='nihao'
  console.log('路由级中间件2');
  await ctx.render('index',{txt});

});

//应用级中间件
app.use(async (ctx, next) => {

  ctx.state.commondata='我是公共数据,每个页面都可以使用'
  console.log('应用级中间件');
  await next();

  if (ctx.status == 404) {
    ctx.body = '404页面';
  }
});

//使用中间件
app.use(router.routes()).use(router.allowedMethods());

app.listen(8082);

page/index.html

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <p><%=commondata%></p>
  <p><%=txt%></p>
</body>

</html>

结果:


image.png

相关文章

  • koa.js的使用(koa2)

    koa与Express简单比较Express connect 中间件 封装了 路由、视图,koa co中间件 不包...

  • 从零开始构建一个Koa2+MySQL项目

    一、初始化Koa2框架 1.运用脚手架初始化Koa2框架 2.使用koa-generator生成koa2项目 3....

  • koa2入门系列

    koa2入门系列(一) koa2入门系列(二) koa2入门系列(三) koa2入门系列(四) koa2入门系列(...

  • koa2的重点使用

    [TOC] Koa2 Koa2是现在最流行的基于Node.js平台的web开发框架,它很小,但扩展性很强使用 ko...

  • koa2中间件

    如何写一个koa2中间件呢?下面写一个简单的案例 创建koa2服务,新建一个文件 如何使用? 在需要使用的地方引入...

  • koa中间件编写

    如何编写koa框架的中间价? 使用过koa2的朋友们都知道,koa2依赖的中间件不少1、koa-router2、k...

  • mac环境下安装koa2

    1.安装koa2,在终端输入: 2.使用koa2创建一个项目koa2-test,在终端输入: 如果报这样的错误-b...

  • 使用Koa.js,离不开这十个中间件

    随着ES6的普及,async/await的语法受到更多JS开发者的青睐,Koa.js作为比较早支持使用该语法的No...

  • 推荐Koa.js的十个中间件2018-08-20

    随着ES6的普及,async/await的语法受到更多JS开发者的青睐,Koa.js作为比较早支持使用该语法的No...

  • 使用Koa.js,离不开这十个中间件

    随着ES6的普及,async/await的语法受到更多JS开发者的青睐,Koa.js作为比较早支持使用该语法的No...

网友评论

      本文标题:koa.js的使用(koa2)

      本文链接:https://www.haomeiwen.com/subject/rbeoahtx.html