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

2023-05-16

上一节我们学习了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去返回,处理一步也就这几种方式;

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

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

三.【NodeJs入门学习】POST接口 的相关文章

随机推荐

  • 联想笔记本G50-80 bios白名单修改

    联想笔记本G50 80 bios白名单修改 缘由 xff1a 更换网卡为AX200 xff0c 遇到bios白名单的限制 xff0c 需要修改bios程序 bios型号 xff1a B0CNA0WW 软件工具 xff1a UEFITOOL
  • acwing笔记

    文章目录 基础知识快速排序归并排序二分查找 基础数据结构数组模拟单链表trie字符串统计并查集堆模板 搜索和图论邻接表数组实现dfsbfskmp最短路最小生成树二分图 数学知识动态规划dp背包问题 贪心 基础知识 快速排序 span cla
  • 20220323华为笔试

    1 span class token macro property span class token directive hash span span class token directive keyword include span s
  • 《葵花宝典》计算机网络篇幅

    文章目录 七层网络模型和五层网络模型 xff0c 以及各自都有哪些常见协议 xff1f TCP UDP对比 xff0c 使用选择TCP为什么可靠 UDP怎样才能可靠扩展考察点 xff1a QUIC 协议TCP UDP报文头部格式TCP三次握
  • 亚马逊爬虫-python

    找实习遇到的作业 xff1a 最终结果 xff1a 实现代码分两部分 xff1a 抓取书籍id 爬取详细数据 1 xff1a import requests import re from pyquery import PyQuery as
  • http请求转串口通信模块实现网页发送文字硬件语音播放(esp8266 串口语音模块 )

    首先你有这样的8266 这两种8266自身带2个按键和烧录芯片方便调试 xff0c 综合性价比较高 还有就是需要这样的串口语音播放模块 有了这些我们开始吧 xff01 1 先看一段视频效果演示 xff0c 再来介绍实现步骤 http请求转串
  • 多智能体系统编队算法仿真--python3实现

    初始条件 xff1a 智能体位置随机生成所有智能体位置全局可知目标多边形位置给定所有个体运行相同算法 xff0c 根据环境来决定自己动作 目标 xff1a 形成均匀多边形分布 xff0c 所谓的 均匀 效果如下图 xff1a 即是多边形上间
  • 大众点评美食评论爬虫

    大家都知道的 xff0c 大众点评用了css反爬 xff0c 脑壳疼 评论文字使用SVG替换 然后还需要登录才能查看全部评论 xff0c 也就是要带cookie了 xff0c 此外时不时跳验证码 xff0c 验证码还有几种 xff0c 这帮
  • Python大佬手把手教你利用wxPython模块编写界面程序

    wxPython是一个开发桌面端图形界面的跨平台函数库 xff0c 开发语言为Python xff0c 它是基于C 43 43 的函数库wxWidgets的封装 很多人学习python xff0c 不知道从何学起 很多人学习python x
  • 什么是栈,栈存储结构详情

    什么是栈 xff0c 栈存储结构详情 同顺序表和链表一样 xff0c 栈也是用来存储逻辑关系为一对一数据的线性存储结构 xff0c 如图所示 从图1我们看到 xff0c 栈存储结构与之前学的线性存储有所差异 xff0c 这源于栈对数存和取的
  • C++cmath数学常用库中的代码介绍

    今天小编来分享一波C 43 43 cmath数学常用库中的常用代码 首先 xff0c 这些所有的代码都来自cmath库 xff0c 所以必须先引用cmath头文件 xff0c 即 xff1a include lt cmath gt 1 绝对
  • vue-cli-service Axios 持续返还401

    后端 xff1a 在登录超时或没有登录的情况 xff0c 所有请求都会拒绝并且返还HTTP状态码401 前端 xff1a 前端将认证的Token放到loadStorage中 xff0c 在认证失效时候清空 在接到HTTP状态码为401时 x
  • 载波相位测量

    1 简述GPS载波相位测量的基本原理 载波相位测量的观测量是GPS接收机所接收的卫星载波信号与接收机本振参考信号的相位差 利用接收机测定载波相位观测值 xff0c 经基线向量解算以获得两个同步观测站之间的基线向量坐标差 2 在高精度GPS测
  • PJLib开发杂谈

    去年公司搞了一个智慧乡村的项目 xff0c 其中涉及到视频监控的问题 电信提供的解决方案 xff0c 我们的平台只需要跟电信对接HLS流就可以了 这就有一个问题 xff0c 原来公司安装的监控无法接入到自己的平台 xff0c 好尴尬啊 于是
  • 开发GB28181监控平台前期准备总结

    首先得准备PJLIB的编译 xff0c 这个搜一下 xff0c 下载以后它是有VS的工程文件的 xff0c 所以编译很方便 得到这个库以后 xff0c 就可以编写SIP服务程序了 xff0c 服务程序可以验证GB28181的相关通讯流程 x
  • esp8266 丢失固件 丢失程序问题

    1 首先esp8266 丢失固件 丢失程序问题已经解决 2 解决方法 我们制作了一个固件保护主板 xff0c 提供2种供电接口 xff0c 支持5v稳压 串口电平保护 xff0c 固件保护 xff0c 反电动势保护 xff0c 支持复位按键
  • printf重定向

    1 printf与fputc 对于 printf 函数相信大家都不陌生 xff0c 第一个C语言程序就是使用 printf 函数在屏幕上的控制台打印出Hello World xff0c 之后使用 printf 函数输出各种类型的数据 xff
  • ESP32_BLUFI代码移植过程遇到的问题

    1 先是运行esp32官方给的例程 xff0c 出现了错误报错如下 xff1a esp image Image length 1053648 doesn t fit in partition length 1048576 boot Fact
  • Java 中的 Iterator 迭代器详解

    x1f366 Iterator 接口 在程序开发中 xff0c 经常需要遍历集合中的所有元素 针对这种需求 xff0c JDK 专门提供了一个接口 java util Iterator Iterator 接口也是 Java 集合中的一员 x
  • 三.【NodeJs入门学习】POST接口

    上一节我们学习了get接口 xff0c 这一节我们自己来写一下post接口 1 复习一下 先复习一下上一节中get请求的步骤 上图是在入口app js中处理get请求 xff0c 先拿到请求的url xff0c 然后设置了一个函数handl