koa 使用
首先需要初始化一个项目
1
npm init
然后安装 koa
1
npm install koa -D
新建一个server.js
引入koa及koa路由
1
2const koa = require("koa");
const Router = require("koa-router");使用koa类
1
let server = new koa();
监听8080端口号
1
server.listen(8080);
使用koa路由类
1
let router = new Router();
添加一个路由
1
2
3
4
5
6
7router.get("/login", async ctx => {
if (!ctx.query.user || !ctx.query.pass) {
ctx.throw(400, "user and password is required");
} else {
ctx.body = "成功";
}
});将路由添加到server上
1
server.use(router.routes());
koa
- v1 generator
- v2 过渡版 gennerator&async
- v3 async/await
路由方法
- get
- post
- all (所有方法都认)
嵌套路由
- koa将路由独立出来,可以将路由嵌套
1
2
3
4
5
6
7/user
/company
/
/admin
/news
/sport
/woman
传参
- urlencoded传参 http://k.com/user?a=1
- 灵活
- 可省略
- params传参 http://k.com/user/1
- 利于seo(相对静态)
后台获取信息
- ctx.params
- ctx.query
- ctx.method
- ctx.url
- server.context: 相当于ctx的原型(prototype)
- ctx.request
- ctx.response
信息
- ctx.method 请求方法
- ctx.url
- ctx.path
- ctx.query get数据
- ctx.ip 客户端的ip
- ctx.headers 请求头
错误处理
- ctx.throw(code, msg)
- ctx.assert(条件, code, msg)
- ctx.state=305 (状态码)
- ctx.redirect(‘http://www.baidu.com') (重定向到其他页面)
- ctx.attachment (发送文件给用户)
安装koa-static(访问静态页面)
1 | npm install koa-static -D |
1 | // 引入 |
安装koa-better-body
1 | npm koa-beeter-body -S |
cookies
1 | server.keys=['sdfg','sdfsdfsdfs'] |
session
1 | // 需要引入 |
数据库
1 | npm install mysql co-mysql -D |
1 | const mysql = require('mysql'); |