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 = '账号信息错误'
  }
})
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值