Koa及其插件

Koa是Node.js的下一代Web框架,由Express团队创建,重点在于使用async函数改进错误处理并创建强大的中间件系统。本文介绍了Koa的基本概念、安装、中间件机制、路由实现、错误处理、控制器、静态资源、上传文件、授权认证,特别是JWT的使用和自定义认证中间件。
摘要由CSDN通过智能技术生成

koa

koa 是基于 Node.js 的下一代 Web 框架

简介

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

安装

Koa 依赖 node v7.6.0 及其以上的版本

npm i koa -s

开始做一个 Hello World

如下的目录文件:
在这里插入图片描述

index.js 如下的代码:

const koa = require('koa');
const app = new koa();

app.use((ctx) => {
   
    ctx.body = 'Hello World'
})

app.listen(3000);

OK,运行如下代码启动它:

node index.js

Async

在 koa 中很多代码使用了 async,所以我们需要了解 async 的用法

如果该函数是一个异步函数,可以使用 async

const fun = async () => {
   
    const res = await fetch(/ 代码... /)
    const json = await res.json();
    console.log(json);
}

中间件

koa 的中间件其实是需要使用 next() 来调用的,它的中间件就是一个洋葱模型

在这里插入图片描述

路由

路由是什么

路由就是决定了不同URL是如何被不同地执行的。

那么在 Koa 中 ,路由其实是一个中间件

为什么要使用路由

如果没有路由,会怎么样?

  • 所有请求都做了相同的事
  • 所有请求都会返回相同的结果

路由存在的意义

  • 处理不同的 URL
  • 处理不同的 HTTP 方法
  • 解析 URL 上的参数

自己编写一个简单的 “路由” 中间件

const koa = require('koa');
const app = new koa();

app.use(async (ctx) => {
   
    const {
   url} = ctx;
    if(url === '/') {
   
        ctx.body  = '这是主页';
    } else if (ctx.url === '/users') {
   
        if(ctx.method === 'GET') {
   
            ctx.body = '这是用户列表页'
        } else if (ctx.method === 'POST') {
   
            ctx.body = '创建用户'
        } else {
   
            ctx.status = 405
        }
    } else if (url.match(/\/users\/\w+/)) {
   
        const userId = url.match(/\/users\/(\w+)/)[1]
        ctx.body = `这是用户 ${
     userId}`
    } else {
   
        ctx.status = 404;
    }
})

app.listen(3000);

使用 koa-router 实现路由

安装

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值