koa2初探(三)get與post
阿新 • • 發佈:2019-01-25
get與post有三種傳參方式
- 傳統方式,通過“?=&”傳遞引數
- 通過路徑傳參
- post body傳參
&傳參
localhost:3000/home?id=3&user=me
通過 ctx.request.query 獲取引數物件
通過 ctx.request.querystring 獲取引數字串
router.get('/home', async(ctx, next) => {
console.log(ctx.request.query) //物件
console.log(ctx.request.querystring) //字串
ctx.response.body = '<h1>HOME page' +ctx.request.query.id +':'+ctx.request.query.user+'</h1>'
})
’ / ‘傳參
localhost:3000/home/3/me
通過 ctx.params 獲取引數物件
router.get('/home/:id/:user', async(ctx, next)=>{
console.log(ctx.params)
ctx.response.body = '<h1>HOME page '+ctx.params.id+':'+ctx.params.user+'</h1>'
})
post傳參
post傳值需要用到中介軟體 koa-bodyparser
koa-bodyparser使用
npm install koa-bodyparser
引用
const bodyParser = require('koa-bodyparser')
const app = new Koa()
app.use(bodyParser())
例項
通過ctx.request.body獲取引數物件
router.get('/user', async(ctx, next)=>{
ctx.response.body =
`
<form action="/user/register" method="post">
<input name="name" type="text" placeholder="請輸入使用者名稱:ikcamp"/>
<br/>
<input name="password" type="text" placeholder="請輸入密碼:123456"/>
<br/>
<button>GoGoGo</button>
</form>
`
})
// 增加響應表單請求的路由
router.post('/user/register',async(ctx, next)=>{
let {name, password} = ctx.request.body
if( name == 'ikcamp' && password == '123456' ){
ctx.response.body = `Hello, ${name}!`
}else{
ctx.response.body = '賬號資訊錯誤'
}
})