一、安装
# 项目初始化 npm init -y # 安装koa2 npm i koa2
二、入口文件
在项目根目录创建 app.js 文件,并在上一步操作中生成的 package.json 里配置:
package.json
{ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node app.js" }, }
app.js
const Koa = require('koa2'); const app = new Koa(); const port = 9000; /* 解释下面这段代码: app.use()方法是:将给定的中间件方法添加到此应用程序。简单说就是调用中间件 app.use() 返回 this, 因此可以链式表达 */ app.use(async (ctx)=>{ ctx.body = "Hello, Koa"; // ctx.body是ctx.response.body的简写 }) app.listen(port, ()=>{ console.log('Server is running at http://localhost:'+port); })
三、洋葱模型
const Koa = require('koa2'); const app = new Koa(); const port = 9000; app.use(async (ctx, next)=>{ console.log(1) await next(); console.log(1) }) app.use(async (ctx, next)=>{ console.log(2) await next(); console.log(2) }) app.use(async (ctx)=>{ console.log(3) }) app.listen(port, ()=>{ console.log('Server is running at http://localhost:'+port); }) //输出 1 2 3 2 1
四、路由中间件
npm i koa-router
const Koa = require('koa2'); const Router = require('koa-router'); const app = new Koa(); const router = new Router(); const port = 9000; router.get('/', async (ctx)=>{ ctx.body = "首页"; }) router.get('/list', async (ctx)=>{ ctx.body = "列表页"; }) app.use(router.routes(), router.allowedMethods()); app.listen(port, ()=>{ console.log('Server is running at http://localhost:'+port); })
备注:
// 调用router.routes()来组装匹配好的路由,返回一个合并好的中间件 // 调用router.allowedMethods()获得一个中间件,当发送了不符合的请求时,会返回 `405 Method Not Allowed` 或 `501 Not Implemented` allowedMethods方法可以做以下配置: app.use(router.allowedMethods({ // throw: true, // 抛出错误,代替设置响应头状态 // notImplemented: () => '不支持当前请求所需要的功能', // methodNotAllowed: () => '不支持的请求方式' }))
五、路由拆分
1、基础使用
抽取出一个list路径
2、路由重定向
把/重定向到/home
router.redirect('/', '/home');
还没有评论,来说两句吧...