前端迈向架构师第一步-快速了解koa框架-1

199 阅读2分钟
「这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战

Koa介绍

koa是Express的下一代基于Node.js的web框架。

Express是第一代最流行的web框架,它对Node.js的http进行了封装。

Koa是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架,它对Node.js的http进行了封装。 使用 Koa 编写 web 应用,可以免除重复繁琐的回调函数嵌套, 并极大地提升错误处理的效率。Koa不在内核方法中绑定任何中间件, 它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手,开发思路和 Express 差不多,最大的特点就是可以避免异步嵌套

Koa的安装和基本使用

image.png

koa的基本使用

Koa 提供一个 Context 对象,表示一次对话的上下文(包括 HTTP 请求和 HTTP 回复)。通过加工这个对象,就可以控制返回给用户的内容。

Context.response.body属性就是发送给用户的内容。

// 引入Koa
var koa = require('koa');
// 实例化Koa
var app = new koa();
 
app.use( async(ctx)=>{
    ctx.body = "hello,koa"
});
 
// 监听端口
app.listen(3000);

koa路由的使用

// 1.安装 npm install --save koa-router
 
var Koa = require('koa');
// 2.引入路由并实例化
var Router = require('koa-router');
var app = new Koa();
var router = new Router();
 
// 路由路径前缀设置
router.prefix('/api')
 
// 3.配置路由
router.get('/get', async (ctx) => { // 路径: /api/get
    // 返回数据给前端
    ctx.body = "返回响应数据";
});
 
// 4.启动路由(来自于官方文档);
// router.allowedMethods()可以配置也可以不配置。
// 如果之前的没有设置响应头,配置此选项以后可以自动设置响应头。
app.use(router.routes()).use(router.allowedMethods());
 
// 监听端口
app.listen(3000);

Koa中间件

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

  1. 添加应用。主要通过app.use()这个函数添加或是启动一些应用,如常见的一些第三方中间件的使用。
  2. 匹配路由。主要通过next()这个函数完成多级路由匹配。
  3. 错误处理。如果当前访问的路由一直向下匹配没有匹配到,可以通过中间件给出错误响应。
var Koa = require('koa');
var Router = require('koa-router');
var app = new Koa();
var router = new Router();
// Koa 错误处理中间件
// 无论app.use放到路由前面还是后面
// 都是先执行app.use再去执行路由
app.use(async (ctx, next) => {
    console.log('这是一个中间件');       // 执行顺序1
    await next();
    if (ctx.status == 404) {           // 执行顺序3
        ctx.body = '这是一个404页面';
    } else {
        console.log(ctx.url);
    }
});
// 配置新闻页                            // 执行顺序2
router.get('/news', async (ctx, next) => {
    console.log('这是新闻路由');
    await next();
});
 
app.use(router.routes());
app.use(router.allowedMethods());
 
app.listen(3000);