三.【NodeJs入门学习】POST接口

上一节我们学习了get接口,这一节我们自己来写一下post接口

1.复习一下

先复习一下上一节中get请求的步骤

上图是在入口app.js中处理get请求,先拿到请求的url,然后设置了一个函数handleRoutes去处理请求和相应的数据,函数中我们根据请求的方法和连接去分别处理:就是拿到请求的数据,并做一些列处理,然后返回处理后的数据,因为响应的数据格式需要string类型化,所以我们转了一下返回的json数据,然后响应结束并返回。

2.POST请求

我们照猫画虎,去写一个post请求,在这之前,我们百度了一下post请求的基本代码:

需要用res.on方法,给一个data属性将数据用流的形式存储,如下:

let strData = '';
req.on('data', (chunk) => {
    strData += chunk.toString();
})

然后是使用req.on('end', () => {}),去结束请求,特别注意,需要在回调函数中res.end及其他处理,负责会出现异步的情况,下面我们具体来看一下。

1)首先我们需要在创建服务的回调函数中,也就是app.js中区别一下get和post请求

根据req.method即可判断:

2)接收请求并处理数据

 依照1)之前我们查到的代码来写我们自己的代码:

strData是我们接收到的入参,咋混为json格式之后,传入处理数据的函数中,后面接收数据就和get请求是一样的。

3)处理数据

我们具体看一下数据处理,顺便修改了一下之前的get请求,我们先看一下路由的处理:

我改了一下请求,get请求去拿这个学校的年级,post请求去拿某个年级的班级,然后是数据处理的文件,后面会使用数据库查询,暂时先写死吧:

 4)post的数据

我们着重来看一下中间路由的数据处理,就是下面这段代码

if (method === 'POST' && req.url === '/api/grade/queryClass') {
        const body = req.body;
        const data = queryClasses(body);
        console.log(data,new SuccessModal(data) )
        return new SuccessModal(data);
    }

我们在传入路有前将拿到的入参放在了req的body中:

req.body = JSON.parse(strData);

 然后在路由中拿到body入参,进行数据查询,拿到我们需要的res数据,new SuccessModal是创建的一个成功返回数据的模版,上一节有介绍到,会返回一个status为200,且数据会存在data中返回。

5)postman测试

 我们清晰的看到了请求接口返回的grade为1时的信息,至此post请求我们就写完了。

3.总结

其实也没啥总结的,有需要我们注意的几点。

1)post请求时,入参接收是chunk参数,以数据流的形式返回,且我们需要转为string接收;

2)end的时候会产生异步,我们要不在回调函数中完成,要不就要使用promise去返回,处理一步也就这几种方式;

其他也没啥了下一章节继续跟着视频去学习了。

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值