示例代码请访问我的GitHub: github.com/chencl1986/…

同时处理GET/POST请求

通常在开发过程中,同一台服务器需要接收多种类型的请求,并区分不同接口,向客户端返回数据。

最常用的方式,就是对请求的方法、url进行区分判断,获取到每个请求的数据后,统一由一个回调函数进行处理。

如下示例代码,可以在/lesson08/form_get.html和/lesson08/form_post.html中,通过提交表单查看效果。

示例代码:/lesson08/server.js

const http = require('http')
const url = require('url')
const querystring = require('querystring')const server = http.createServer((req, res) => {// 定义公共变量,存储请求方法、路径、数据const method = req.methodlet path = ''let get = {}let post = {}// 判断请求方法为GET还是POST,区分处理数据if (method === 'GET') {// 使用url.parse解析get数据const { pathname, query } = url.parse(req.url, true)path = pathnameget = querycomplete()} else if (method === 'POST') {path = req.urllet arr = []req.on('data', (buffer) => {// 获取POST请求的Buffer数据arr.push(buffer)})req.on('end', () => {// 将Buffer数据合并let buffer = Buffer.concat(arr)// 处理接收到的POST数据post = querystring.parse(buffer.toString())complete()})}// 在回调函数中统一处理解析后的数据function complete() {console.log(method, path, get, post)}
})server.listen(8080)
复制代码

Nodejs教程08:同时处理GET/POST请求相关推荐

  1. nodejs项目实战教程08——创建静态Web服务器

    nodejs项目实战教程08--创建静态Web服务器 什么是Web服务器 目标 1. 访问web服务器上面的网站 1.1 创建服务器 1.2 读取服务器上的资源文件 2. 下载web服务器上的文件 方 ...

  2. 视频教程-20年Nodejs教程零基础入门到项目实战前端视频教程-Node.js

    20年Nodejs教程零基础入门到项目实战前端视频教程 7年的开发架构经验,曾就职于国内一线互联网公司,开发工程师,现在是某创业公司技术负责人, 擅长语言有node/java/python,专注于服务 ...

  3. ExtJS 4.2 教程-08:布局系统详解

    ExtJS 4.2 系列教程导航目录: ExtJS 4.2 教程-01:Hello ExtJS ExtJS 4.2 教程-02:bootstrap.js 工作方式 ExtJS 4.2 教程-03:使用 ...

  4. Node初学者入门,一本全面的NodeJS教程,微小的web框架,能实现文件上传功能以及数据解析功能...

    Node初学者入门,一本全面的NodeJS教程 转载于:https://www.cnblogs.com/hfultrastrong/p/8036672.html

  5. NodeJs本地搭建服务器,模拟接口请求,获取json数据

    最近在学习Node.js,虽然就感觉学了点皮毛,感觉这个语言还不错,并且也会一步步慢慢的学着的,这里实现下NodeJs本地搭建服务器,模拟接口请求,获取json数据. 具体的使用我就不写了,这个博客写 ...

  6. [译]Vulkan教程(08)逻辑设备和队列

    [译]Vulkan教程(08)逻辑设备和队列 Introduction 入门 After selecting a physical device to use we need to set up a  ...

  7. Nodejs教程笔记(五)fs续 读取 写入 管道流

    感谢b站教程:Nodejs教程_Nodejs+Koa2入门实战视频教程-2020年更新 读取流 const fs = require('fs')// 读取流 var readStream = fs.c ...

  8. python网络爬虫教程(四):强大便捷的请求库requests详解与编程实战

    上一章中,我们了解了urllib的基本用法,详情可浏览如下链接python网络爬虫教程(三):详解urllib库,但其中确实有不方便的地方,为此,我们可以使用更方便更简洁的HTTP请求库request ...

  9. nodejs 使用http进行post或get请求(携带cookie)

    #nodejs 使用http进行post或get请求(携带cookie) 安装http nmp install http 函数封装(可直接拿去进行使用) var http = require('htt ...

最新文章

  1. Python心得--如何提高代码质量
  2. 《统计学》学习笔记之数据的收集
  3. 44. 源代码解读-RocketMQ-架构
  4. 基于Python+Django的在线习题考试测试管理系统
  5. mac下通过brew安装的Nginx在哪
  6. ARM 指令集跳转指令
  7. pat甲级什么水平_转让河北工程设计建筑行业(建筑工程)甲级资质
  8. [转载] python基础 - namedtuple和enum
  9. Transfer-Encoding: chunked
  10. yii、yaf、ci等php框架性能对比
  11. win10远程桌面Android软件,Microsoft发布了适用于Android的远程桌面应用程序10.0.7版的重大更新...
  12. “磁碟机”病毒详尽分析报告
  13. linux 编译chromium,chromium(linux环境)指定版本下载和编译教程
  14. owncloud 私有云搭建
  15. 【MyBatis 面试题】
  16. 【元器件学习笔记—电阻】(6)——电阻并联电路
  17. 闪压压缩解压软件官方版
  18. c语言中 int和const int的区别
  19. Android 遇到的疑难杂症及解决方式。
  20. freebsd 安装 java_转 FreeBSD 安装JDK

热门文章

  1. c#中textbox属性_C#.Net中的TextBox.MaxLength属性与示例
  2. 数组shift方法_数组shift()方法以及JavaScript中的示例
  3. 括号配对问题(C++栈)
  4. cobalt strick 4.0 系列教程(6)Payload Artifact 和反病毒规避
  5. 1!+2!+3!+…+10!的和
  6. 打开端口_打印机ip及端口设置
  7. [Beego] [bootstrap-paginator]实现分页功能
  8. redis源码剖析(七)—— Redis 数据结构dict.c
  9. C语言 防止头文件被多次引用
  10. Effective C++学习第四天