koa是幹什麼:koa是用來解決回調嵌套的方案,減小異步回調,提升代碼的可讀性和可維護性同時也改進了錯誤處理( Express的錯誤處理至關糟糕)node
koa相比express的優勢在哪裏
一、更加優雅簡單的中間機制
二、更加優雅簡單的異步處理
三、更加優雅簡單的編程方式express
1、安裝和使用koa
一、檢查node版本,低於7.6是不支持的。
查找node安裝位置命令行 : where node
二、選擇須要安裝或操做的文件夾, npm init -y 生成.json文件
npm i --save koanpm
2、get請求的接收
在koa2中 get請求經過 request 接收 ,接收方法分別是:query 和 qureystring
query : 返回的是格式化好的參數對象,
querystring :返回的是請求的字符串編程
案例:
新建一個 index.js 的文件json
const Koa = require('koa') const app = new Koa() app.use(async(ctx)=>{ let ctxx = ctx let url = ctx.url //一、從require 裏面獲取 query 和 querystring let request = ctx.request let a_query = request.query let a_querystring = request.querystring //二、從上下文直接獲取 query 和 querystring let b_query = ctx.query let b_querystring = ctx.querystring ctx.body={ url, a_query, a_querystring, b_query, b_querystring } }) app.listen(3000,()=>{ console.log("OK") })
3、post接收和解析
用戶是GET請求時,經過表單來模擬POTS請求提交併解析app
const Koa = require('koa'); const app = new Koa(); app.use(async(ctx)=>{ //用戶是get請求時,顯示錶單 if(ctx.url==="/" && ctx.method==="GET"){ //get請求建立表單 ctx.body = ` <h1>koa2</h1> <form method="POST" action="/"> <p>userName</p> <input type="text" name="userName"/> <p>age</p> <input tpye="text" name="age"/> <button type="submit">提交</button> </form> ` }else if(ctx.url==="/" && ctx.method==="POST"){ //post請求打印 let postdatas = await parsePostData(ctx) ctx.body = postdatas }else{ //其餘請求顯示404 ctx.body=` <h1>404</h1> ` } }); //解析node原生POST參數 function parsePostData(ctx){ return new Promise((resolve,reject)=>{ //Promise 調用成功 try{ let postdata = "" //koa 監聽 ctx.req.on("data",(data)=>{ postdata += data }) //執行結束之後返回 ctx.req.addListener("end",function(){ let postList = parsingStr(postdata) resolve(postList) }) }catch(err){ reject(err) } }) } //打字符串解析成json function parsingStr(str){ let parsingData = {} let parsingList = str.split("&") for(let value of parsingList){ let item = value.split('=') parsingData[item[0]] = item[1] } return parsingData } app.listen(3000,()=>{ console.log("OK") })
4、安裝中間件來解析post
經過安裝 koa-bodyparser@3 中間件 來解析 POST 數據 (就不用在手動去POST數據解析出來了)
一、安裝 npm i --save koa-bodyparser@3
二、引入插件 : const bodyParser = require('koa-bodyparser')
三、註冊插件 : app.use(bodyParser ())
四、使用:ctx.body = ctx.request.body //ctx.request 直接就把 POST的數據解析成一個json了koa