1. 程式人生 > >koa2初探(三)get與post

koa2初探(三)get與post

get與post有三種傳參方式

  1. 傳統方式,通過“?=&”傳遞引數
  2. 通過路徑傳參
  3. 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 = '賬號資訊錯誤' } })