一、koa
与express
的认识
- 1、他们都是
node-web
开发的框架 - 2、
koa
分两个版本,一个是1.*
的使用Generator
来写的,另外一个版本是使用async
来写的 - 3、
koa
的官网比较简单传送门
二、开始使用koa
-
1、
kao
官网也介绍了,node
的版本要大于7.6
才可以使用async
否则就要配置插件 -
2、使用官方案例跑一个
hello word
const Koa = require("koa"); const app = new Koa(); app.use(async (ctx) => { ctx.body = 'Hello World'; }) app.listen(3000, () => { console.log(`服务器已经启动:localhost:3000`); });
三、koa
官网如此的简单就是因为跟之前的express
完全不一样,把我们常用的路由,静态文件等都单独出去了
四、使用路由
-
1、安装包
npm install koa-router --save
-
2、使用
**router文件** const Router = require('koa-router'); const router = new Router(); router.get('/', async (ctx) => { ctx.body = `<h1>你好</h1>`; }) module.exports = router.routes();
-
3、在主文件中使用
app.use(require('./routers/user'));
-
4、配置子路由
const Router = require("koa-router"); const router = new Router(); router .get("/", async ctx => { ctx.body = ` <ul> <li><a href="/hello">helloworld</a></li> <li><a href="/about">about</a></li> </ul> `; }) .get("/hello", async ctx => { ctx.body = "helloworld"; }) .get("/about", async ctx => { ctx.body = "about"; }); module.exports = router.routes();
五、使用静态文件
-
1、安装包
npm install koa-static --save
-
2、使用
**主文件中** const static = require('koa-static'); const path = require('path'); // 静态存放地址 const staticPath = './static'; app.use(static( path.join(__dirname, staticPath) ))
六、get
请求数据的获取
-
1、
get
请求发送json
到前端const Router = require("koa-router"); const router = new Router(); router.get("/query", async ctx => { // 获取url const url = ctx.url; // 获取客户端的参数 const query = ctx.query; // 获取?后面全部的参数 const querystring = ctx.querystring; ctx.body = { url, query, querystring }; }); module.exports = router.routes();
七、post
提交数据
-
安装包
npm install koa-bodyparser --save
-
2、主文件配置
koa-bodyparser
中间件**主文件中** const bodyParser = require('koa-bodyparser'); // 使用koa-bodyparser中间件 app.use(bodyParser());
-
3、配置路由
router.post("/create", async ctx => { console.log(ctx.request.body); ctx.body = { name: ctx.request.body.name }; });
八、koa
配置跨域访问
-
1、在主文件中配置中间件
npm install --save koa2-cors var koa = require('koa'); var cors = require('koa2-cors'); var app = koa(); app.use(cors({ origin: function(ctx) { if (ctx.url === '/test') { return false; } return '*'; }, exposeHeaders: ['WWW-Authenticate', 'Server-Authorization'], maxAge: 5, credentials: true, allowMethods: ['GET', 'POST', 'DELETE'], allowHeaders: ['Content-Type', 'Authorization', 'Accept'], }));
九、使用ejs
模板引擎(现在流行前后端分开开发,不怎么用了)
-
1、安装
koa-views
视图包npm install koa-views --save
-
2、安装
ejs
模拟引擎npm install ejs --save
-
3、主文件中配置使用的模板引擎
const path = require('path') const views = require('koa-views'); // 加载模板引擎 app.use(views(path.join(__dirname, './view'), { extension: 'ejs' })) // 渲染模板 app.use(async ctx => { let title = "Koa2"; // 渲染模板及返回参数 await ctx.render("index", { title }); });
欢迎加入群聊,我们一起探讨前端技术栈
群号:560285778