Axios的Restful风格与koa2接收参数形式

Axios的Restful风格与koa2接收参数形式

因为项目中涉及到了axios的delete的方法就查询了一下aixos的官网后来在网上搜了一篇axios与restful请求规范的帖子,于是找到自己毕业设计所写的koa2后端项目打算小小的试一下。

axios官网的方法:

  • axios.request(config)

  • axios.get(url[, config])

  • axios.delete(url[, config])

  • axios.head(url[, config])

  • axios.options(url[, config])

  • axios.post(url[, data[, config]])

  • axios.put(url[, data[, config]])

  • axios.patch(url[, data[, config]])

emmm我只研究了那几个restful风格的方式~~~~~

GET方法:

koa2中安装了koa-bodyparser

await axios({
    url:'/api/test/jiaxin/1',
    method:'get',
})
await axios({
    url:'/api/test',
    method:'get',
    params:{
        name:'jiaxin'
    }
})
//koa2
router.get('/test/:name/:id',async(ctx,next)=>{
    console.log(ctx.params)
    ctx.body={
        message:'查询成功'
    }
})
router.get('/test',async(ctx,next)=>{
    console.log(JSON.parse(JSON.stringify(ctx.request.query)))
    //console.log(ctx.request.query)
    //如果直接这样输出会出现[Object: null prototype] { name: 'jiaxin' },你觉的不舒服的话就先转化成json格式
    ctx.body={
        message:'查询成功'
    }
})
//get请求中规中矩,但是第一种传递值得方式我是第一次使用
//url
'http://localhost:8081/api/test/jiaxin/1'第一种
'http://localhost:8081/api/test?name=jiaxin'第二种
//结果:
{ name: 'jiaxin', id: '1' }//第一种
{ name: 'jiaxin', id: '1' }//第二种

post请求

await axios({
    url:'/api/test',
    method:'post',
    data:{
          name:'jiaxin'
    },
})
//koa2
router.post('/test',async (ctx)=>{
    console.log(ctx.request.body)
    ctx.body = {
        message:'修改成功'
    }
})
//url
'http://localhost:8081/api/test'
//结果
{ name: 'jiaxin'}

PUT

根据阮神的解释(在服务器更新资源(客户端提供改变后的完整资源))

await axios({
      url:'/api/test/put',
      method:'put',
      data:{
             name:'jiaxin'
      },
      params:{
             value:'put'
      }
})
//koa2
router.put('/test/:type',async (ctx)=>{
    console.log(ctx.request.body,ctx.params,JSON.parse(JSON.stringify(ctx.request.query)))
    ctx.body = {
        message:'修改成功'
    }
})
//网上大多数跟post差不多,所以我以为他应该是跟post一样只能发送一种数据,但是不经意间的一次尝试之后我发现了他三种方式都是支持的!!
//url
//'http://localhost:8081/api/test/put?value=put'
{ name: 'jiaxin' } { type: 'put' } { value: 'put' }
//你看   三种都ok

PATCH

根据阮神的解释(在服务器更新资源(客户端提供改变的属性))

await axios({
      url:'/api/test/put',
      method:'put',
      data:{
             name:'jiaxin'
      },
      params:{
             value:'patch'
      }
})
//koa2
router.patch('/test/:type',async (ctx)=>{
    console.log(ctx.request.body,ctx.params,JSON.parse(JSON.stringify(ctx.request.query)))
    ctx.body = {
        message:'修改成功'
    }
})
//patch也是三种方式支持!
//url
//‘http://localhost:8081/api/test/patch?value=patch’
//结果
{ name: 'jiaxin' } { type: 'patch' } { value: 'patch' }

DELETE

await axios({
      url:'/api/test/put',
      method:'put',
      data:{
             name:'jiaxin'
      },
      params:{
             value:'delete'
      }
})
//koa2
router.delete('/test/:type',async (ctx)=>{
    console.log(ctx.request.body,ctx.params,JSON.parse(JSON.stringify(ctx.request.query)))
    ctx.body = {
        message:'修改成功'
    }
})
//同样也是三种方式支持!
//url
//‘http://localhost:8081/api/test/patch?value=delete’
//结果
{ name: 'jiaxin' } { type: 'patch' } { value: 'patch' }

以上就是我粗略研究了一下axios的restful风格发送请求的方式,原谅我比较懒没有加try catch。。。。最后记录一下我的koa2的app.js的配置,我怕以后忘记

const Koa = require('koa');
const static = require('koa-static')
const path = require('path')
const Router = require("koa-router");

const testRouter = require('./router/test')

const router = new Router();
const app = new Koa();

app.use(bodyParser())
app.use(
    static(path.join(__dirname , './public'))
)

router.use(testRouter.routes())

app.use(router.routes())d
app.listen(4000);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值