koa框架
(1) 创建一个koa应用
-
初始化package.json
-
新建一个目录,执行npm init -y
-
安装koa模块
npm i koa --save
- 在根目录新建app.js
//导入koa
const Koa = require('koa');
//创建对象app
const app = new Koa();
app.use(function(ctx){
//给前端返回数据
ctx.body = 'hello world';
})
//设置服务器端口
app.listen(3000,()=>{
console.log('http://localhost:3000');
})
-
执行node app.js, 用浏览器访问http://localhost:3000
-
安装npm i nodemon -g , 让服务器自启动
(2) 安装和使用路由koa-router
- 安装koa-router
npm i koa-router --save-dev
- 修改app.js
//导入koa
const Koa = require('koa');
//导入koa-router
const Router = require('koa-router');
//创建对象app
const app = new Koa();
//创建一个router对象,用来配置路由
const router = new Router();
//配置接口: 第一个参数是接口地址,第二个是函数,在里面返回前端需要的数据
//ctx包含请求返回数据等相关的东西
router.all('/',ctx=>{
ctx.body = ` <ol>
<li><a href="/add">新增</a></li>
<li><a href="/list">列表</a></li>
<li><a href="/del">删除</a></li>
</ol>`;
})
router.all('/add',ctx=>{
ctx.body = '新增';
})
router.all('/list',ctx=>{
ctx.body = ['a','b','c'];
})
router.all('/del',ctx=>{
ctx.body = '删除';
})
//使用router
app.use(router.routes());
//设置服务器端口
app.listen(3000,()=>{
console.log('http://localhost:3000');
})
(3) koa中间件
一个请求从发出到返回数据,如果我们想在这个过程里做一些统一的操作,可以使用中间件来完成.
- 中间件是一个函数
app.use((ctx,next)=>{
ctx.username = '张三';
next();
})
- 中间件是有顺序的
const Koa = require('koa');
const app = new Koa();
app.use((ctx,next)=>{
console.log(1);
ctx.body = 'hello';
next();
console.log(2);
})
app.use((ctx,next)=>{
console.log(3);
next();
console.log(4);
})
app.use((ctx,next)=>{
console.log(5);
next();
console.log(6);
})
app.listen(3000,()=>{
console.log('http://localhost:3000');
})
(4) 设置静态目录
- 安装静态目录
npm i koa-static --save-dev
- 改变app.js代码
const koaStatic = require('koa-static');
app.use(koaStatic(__dirname + '/public'));
(5)获取请求参数
- 获取get请求的参数,使用ctx.query获取请求,先安装和使用koa-body,然后通过ctx.request.body来获取.
- 获取post请求需要使用koa-body模块,安装
npm i koa-body --save
- 使用中间件封装请求