Koa基础入门学习

Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助我们快速而愉快地编写服务端应用程序。接下来将从四个方面展开koa的详细使用讲解。

一、koa-generator脚手架

安装

  • npm install -g koa-generator(全局下安装)

创建项目

  • koa2 project(koa2 -e koa2-learn,创建一个名为koa2-learn的项目)

运行项目

  • SET DEBUG=koa* & npm start koa2-learn

打开浏览器http://localhost:3000/

二、koa异步async await

首先我们需要知道异步的概念是什么。简单的说,就是想做一件事但不是现在执行,而是过一会做,一分钟后才知道结果。因为函数回调的时候,如果多层次嵌套,那简直是噩梦一般。

关于async和promise对象的区别,下面通过一个小栗子,让大家一目了然。

假如我有abc多个事情,对于promise来说,通过级联的方式,a.then.then….(此处省略n个then)去处理b和c的事情,而且必须手动去调用
对于async来说:

const a=await A
const b=await B
const c=await C

a的结果要等待a执行完,不会运行下面的语句,相当于用同步的写法完成异步的过程。

注意:ABC就是promise对象,await后面跟promise对象,await结果到来之前不会向下运行。有同学会问如果await后面不是跟对象呢?如果不是对象会自动转成对象。

理解async和await需要明白,当有多个await的时候,会依次向下执行。

三、koa2中间件

中间件是配合路由匹配完成做的一系列的操作,我们就可以把它叫做中间件。Koa中运用中间件可以实现以下一些功能:

1)添加应用:主要通过app.use()这个函数添加或是启动一些应用,如常见的一些第三方中间件的使用。

app.use(async (ctx, next) => {
    console.log(new Date());
    await next();
});

2)匹配路由:主要通过next()这个函数完成多级路由匹配。

router.get('/news', async(ctx,next) => {
    console.log('这是路由');
    await next();
});

3)错误处理:如果当前访问的路由一直向下匹配没有匹配到,可以通过中间件给出错误响应。

app.on('error', err => {
  log.error('server error', err)
});

关于更多中间件的内容,可以查看文档API:https://koa.bootcss.com
或者https://github.com/koajs/koa/wiki

四、koa2路由

在Koa中我们需要安装对应的koa-router路由模块来实现:npm install –save koa-router

var Koa = require('koa');
var router = require('koa-router')();
var app = new Koa();

router.get('/', async (ctx) => {
    ctx.body = "首页";
});
app.use(router.routes()).use(router.allowedMethods());

此外是Koa的路由执行顺序,Koa 选择了洋葱圈模型,即最先访问的路由里的next()后面的代码最后响应。
在这里插入图片描述
以上就是Koa的基础知识讲解,Koa的中文文档里有更详细的使用规则,进一步完善前往:https://github.com/demopark/koa-docs-Zh-CN仓库。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椰卤工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值