get
首先我們需要知道的是,在koa2中,提供了乙個 content (上下文)物件,裡面封裝了koa2的 request 和 response 以及原生node的 req (node的request) 和 res (node的response)
另外一點是 ctx 可以直接使用 request 和 response 的屬性 (通過中介軟體得到的掛在request 和 response 的屬性是不能直接通過 ctx 拿到的)
在koa2中,get引數是在 request 物件中取到的,所以可以通過兩種方式拿到:
const koa = require('koa')
const port = process.env.port || 3000
letrequest = ctx.request
let request_query = request.query
let request_querystring = request.querystring
let ctx_query = ctx.query
let ctx_querystring = ctx.querystring
ctx.body =
})console.log(`the project is strated at $`)
post
在koa2中不能很好的處理post引數,只能使用原生node來處理
const koa = require('koa')
const port = process.env.port || 3000
if (ctx.url === '/' && ctx.method === 'get') else
if (ctx.url === '/' && ctx.method === 'post')
})function
postdata
(ctx) )
ctx.req.on('end', () => )
} catch (err)
})}function
parser
(str)
letarr = str.split
('&')
for(let [index, data] of arr.entries())
return
json
}(port )
console.log
(`the project is strated at $`)
原生的比較麻煩,不過我們可以使用中介軟體
npm i koa-bodyparser
-s
koa-bodyparser 把 post 資料處理到 request.body 中,注意不是 response.body 所以不能通過 ctx 直接拿到
const koa = require('koa')
const port = process.env.port || 3000
const bodyparser = require('koa-bodyparser')
if (ctx.url === '/' && ctx.method === 'get') else
if (ctx.url === '/' && ctx.method === 'post')
})(port )
console.log
(`the project is strated at $`)
至此,
我們可以通過koa2封裝的 ctx 物件的 request 物件拿到 get 引數
通過koa-bodyparser 這個中介軟體拿到 post 引數。
Koa2 學習筆記(第五天)
koa2的模板引擎使用 現在主流的模板引擎為ejs,jade,nunjucks等。這裡採用了ejs,因為比較符合前端html語法,不破壞結構。另外和express不同的是,koa2還需要引中介軟體來支援模板的使用 cnpm i ejs koa views sconst koa require koa...
Koa2基礎學習
01 環境準備 安裝搭建專案的開發環境 02 中介軟體用法 講解 koa2 中介軟體的用法及如何開發中介軟體 03 路由koa router 04 post get請求 常見請求方式處理 05 分層 梳理 漸近於 mvc 分層模式 06 檢視nunjucks koa 預設支援的模板引擎 07 處理靜...
koa2入門學習
koa模組 koa route 路由 route.get 路徑 路由函式 koa static 靜態資源載入 const serve 路徑 koa compose 中介軟體合成模組 koa body 提取表單post請求鍵值對,處理上傳檔案 上下文context的response和request c...