| 「这是我参与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的安装和基本使用
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中运用中间件可以实现以下一些功能:
添加应用。主要通过app.use()这个函数添加或是启动一些应用,如常见的一些第三方中间件的使用。匹配路由。主要通过next()这个函数完成多级路由匹配。错误处理。如果当前访问的路由一直向下匹配没有匹配到,可以通过中间件给出错误响应。
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);