给大家翻译一下npm上body-parser的资料

nodejs 的body数据解析中间件

插件作用:对于req.body属性,在操作数据前分析进来的请求体的插件

首先学习解析一个http处理

这篇文章的目的是为了传授对nodejs http处理过程的理解。我们假设你对http请求怎么工作有一般的理解,不管语言和编程环境。如果你对nodejs的事件对象和流都不太熟悉,那么有必要快速阅读每个API文档。

创建服务器

任何node web应用在某些时候都必须穿件一个web服务对象,这是通过使用createServer来完成的。

const http=require("http");

const server=http.createServer((reqest,response)=>{

//魔法在这里发生

})

这个传递到createServer里面的方法被每一次http请求执行,所以被叫做请求处理程序。实际上,服务器对象返回的createServer是一个事件队列,我们在这只是创建一个服务器对象,并且添加监听器,

const server=http.createServer();

server.on("request",(request,response)=>{

//代码写这里

})

当这个服务器接收到一个http请求,node执行请求操作方法,操作方法中包括一些关于http请求的方便的方法,我们很快就会去学这些。

为了实际的服务器请求,监听方法需呀被服务器对象调用,在很多例子中,你所需要做的就是传递给监听器你想传递的东西,当然还有一些其他的参数,请参考API。

方法,url和操作函数

当接收到一个请求,你需要做的第一件事件是查看请求的方法是get还是post,还有请求的url路径,这样合适的后续动作才能被启用,node通过在request对象上挂一些属性来完成查看请求的方法和路径。

cons {method,url}=request;

这个request是http请求新的实例。

这里的方法是普通的http方法,url是不包含服务器ip、端口和协议的全路径,对于一个典型的url,这些意味着包含端口号后面的一切,包含反斜杠

操作方法

const {header}=request;

const userAgent=headers['user-agent'];

这里提醒一下:所有的头部信息都是小写字母表示,不管客户端实际上怎么发送的,这就简化了解析头部的目的,

请求体

当收到post或put请求时,请求体对应用来说是很重要的,获取请求体数据是比接收请求头部信息更难一些,请求对象

nodejs数据接收body-parser中间件的更多相关文章

  1. 内核中用于数据接收的结构体struct msghdr(转)

    内核中用于数据接收的结构体struct msghdr(转) 我们从一个实际的数据包发送的例子入手,来看看其发送的具体流程,以及过程中涉及到的相关数据结构.在我们的虚拟机上发送icmp回显请求包,pin ...

  2. NodeJS学习笔记之Connect中间件模块(一)

    NodeJS学习笔记之Connect中间件模块(一) http://www.jb51.net/article/60430.htm NodeJS学习笔记之Connect中间件模块(二) http://w ...

  3. 酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)

    酷友观点/经验:支付接口返回数据接收地址,session数据丢失(或者说失效)的问题浅析(原创文章)   最近手头在开发一个游戏官网,在支付模块采用神州付技术支持,神州付数据表单中要求提供服务器返回地 ...

  4. stm32 usb数据接收与数据发送程序流程分析

    http://blog.csdn.net/u011318735/article/details/17424349 既然学习了USB,那就必须的搞懂USB设备与USB主机数据是怎么通讯的.这里主要讲设备 ...

  5. Spark Streaming 数据接收过程

    SparkStreaming 源码分析 一节中从源码角度,描述了Streaming执行时代码的调用过程.下边就接收转化阶段过程再简单分析一下,为分析backpressure作准备. SparkStre ...

  6. UDP数据接收服务器

    简介 这是我在做一个要用UDP方式进行数据传输时,自己写的一个多线程的UDP数据接收服务器, 它能将接收到的UDP数据包存成文件,并提供数据包接收时间监测: 还支持键盘命令响应,以将数据写到新的文件, ...

  7. 【ALB技术笔记】基于多线程方式的串行通信接口数据接收案例

    基于多线程方式的串行通信接口数据接收案例 广东职业技术技术学院  欧浩源 1.案例背景 在本博客的<[CC2530入门教程-06]CC2530的ADC工作原理与应用>中实现了电压数据采集的 ...

  8. 【ALB学习笔记】基于事件触发方式的串行通信接口数据接收案例

    基于事件触发方式的串行通信接口数据接收案例 广东职业技术学院  欧浩源 一.案例背景 之前写过一篇<基于多线程方式的串行通信接口数据接收案例>的博文,讨论了采用轮询方式接收串口数据的情况. ...

  9. MVC查询数据接收及校验

    本来想写一篇aspx的TreeView控件绑值的文章的,在写案例的时候,写了一半,发现有些地方还得考虑以下,就留待下次了. 这一篇的话,是最近在开发一个项目的时候,有大量的页面和数据表,需要花式查询, ...

随机推荐

  1. void bind(String sName,Object object);――绑定:把名称同对象关联的过程

    void bind(String sName,Object object);――绑定:把名称同对象关联的过程 void rebind(String sName,Object object);――重新绑 ...

  2. python django -4 模板

    模板介绍 作为Web框架,Django提供了模板,可以很便利的动态生成HTML 模版系统致力于表达外观,而不是程序逻辑 模板的设计实现了业务逻辑(view)与显示内容(template)的分离,一个视 ...

  3. jvm(12)-java内存模型与线程

    [0]README 0.1)本文部分文字描述转自“深入理解jvm”,旨在学习“java内存模型与线程” 的基础知识:   [1]概述 1)并发处理的广泛应用是使得 Amdahl 定律代替摩尔定律称为计 ...

  4. Win API:之GetCurrentThread、GetCurrentThreadId、GetCurrentProcess、GetCurrentProcessId

    Win API:之GetCurrentThread.GetCurrentThreadId.GetCurrentProcess.GetCurrentProcessId {返回当前线程的虚拟句柄} Get ...

  5. 一些常用的html css整理--文本长度截取

    div+css设置列表div超出部分显示...(单行文本) width:200px; //指定宽度: overflow:hidden; //将超出内容隐藏 text-overflow:ellipsis ...

  6. iOS 实现从后台切换到前台-复制分享宝贝内容,打开淘宝APP,自动弹出宝贝提示信息

    - (void)applicationDidBecomeActive:(UIApplication *)application { NSLog(@"\n ===> 程序重新激活 !&q ...

  7. Nginx模块系列之auth_basic模块

    1.1 介绍 ngx_http_auth_basic_module模块实现让访问着,只有输入正确的用户密码才允许访问web内容.web上的一些内容不想被其他人知道,但是又想让部分人看到.nginx的h ...

  8. Windows10环境vagrant+VirtualBox虚拟机无法创建私有网络的解决方案。

    报错信息 ==> default: Clearing any previously set network interfaces...There was an error while execu ...

  9. "无法加载 DLL“oramts.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。" —— 的解决方法

       Oramts.dll 文件公开登记 Oracle 连接所涉及到在通过 Microsoft 分布式事务处理协调器 (MSDTC) 启动的事务中的公共 API. 在事务处理环境中运行时, Syste ...

  10. 大型软件公司.net面试题

    1:a=10,b=15,在不用第三方变量的前提下,把a,b的值互换   2:已知数组int[] max={6,5,2,9,7,4,0};用快速排序算法按降序对其进行排列,并返回数组   3:请简述面向 ...