nodejs 中 接受前端的数据请求的处理
前台 ----> 后台
后台要接受 前台的数据,只能通过 http
但是 前台接受 后台的数据有 from ajax jsonp
nodejs 给我们提供了模块 url 模块,可以专门解析 url 地址
让我们在走一遍流程
案例:
const http=require("http"); // 引入 http 模块,创建服务器
const urlbli=require("url"); // 引入 url 模块,解析 url 地址
http.createServer(function(req,res){
if(req.url.indexOf("?")!=-1){ //做一个判断,像谷歌这种高级浏览器,每次还会返回一个 favicon;网络地址后面都回带?
// 这个代码的意思是,如果我们这个字符串里面有 ? 在执行里面的语句
var obj=urlbli.parse(req.url,true); // url 模块的 parse 方法,可以帮我们解析浏览器的地址,true 这个参数是处理 浏览器通过 get 传递的参数
var url=obj.pathname; //回得到一个 obj 的对象
var get=obj.query;
console.log(url,get);
}
req.url // 获取了 网络地址
res.write("前台请求的数据");
}).listen(8080);
如果我们运行了 8080 端口,我们在别的服务器上就不能运行了,一个端口,只能运行一个服务器
当然 此等方法也是针对 浏览器通过 get 方式请求 才有效
下面,我们的是 post 的请求;
为什么说 get 和 post 的方式不一样;
如图:

post 和 get 两种请求方式的区别:
1. post 数据 可以比 get 数据发送更多的请求 相对而言,post 比 get 方式安全一点;
最重要的是,如果 post 发送,由于 post 可以发送 1 g 的数据,如果要对服务器 一股脑 发送这么大的数据,对服务器来说确实不够友好,所以 post 的发送方式都是 分段 发送
分段发送:每次发送一小段,分好几次发送完毕;
案例:
var http=require("http");
var querystring=require("querystring");
http.createServer(function(req,res){
var str=""; // on() 在这个里面相当于事件,我们可以这样理解 data 事件 end 事件
req.on("data",function(data){ // 我们想要 得到 post 请求的数据,我们要用 on() 参数一:data ,参数二:回调函数;回调函数 data ,我们便能得到参数
str+=data;
})
req.on("end",function(){ // 我们请求完数据 调用这个方法 我们 调用 on() 参数一:end,参数二:回调函数,我们在这里,便能得到完整的数据
var post = querystring(str);
console.log(post);
})
}).listen(8080)
这样我们便请求完了所以的数据 通过 post 方式
nodejs 中 接受前端的数据请求的处理的更多相关文章
- iOS中GET 和 POST 数据请求
iOS中GET 和 POST 网络数据请求 同步请求和异步请求的差别: 1.同步请求,有主线程完成网路请求任务,在数据没有请求之前,用户的所有的交互事件应用都无法处理,会造成一种卡顿现象,影响用户体验 ...
- 在NodeJS中使用Redis缓存数据
Redis数据库采用极简的设计思想,最新版的源码包还不到2Mb.其在使用上也有别于一般的数据库. node_redis redis驱动程序多使用 node_redis 此模块可搭载官方的 hiredi ...
- 安卓中使用OkHttp发送数据请求的两种方式(同、异步的GET、POST) 示例-- Android基础
1.首先看一下最终效果的截图,看看是不是你想要的,这个年代大家都很忙,开门见山很重要! 简要说下,点击不同按钮可以实现通过不同的方式发送OkHttp请求,并返回数据,这里请求的是网页,所以返回的都是些 ...
- Vue nodejs商城项目- 前后端数据传递
.利用Mongoose查询MongoDB 通过mongoose插件可以简捷地从mondodb中获取数据,首先安装mongoose: cnpm install mongoose --save 使用m ...
- 携带cookie进行数据请求
前端进行数据请求有:普通的ajax(json)请求,jsop跨域请求,cors跨域请求,fetch请求...PC端这些请求方式中,普通的ajax(json)请求和jsop跨域请求是默认携带cookie ...
- 前端笔记之服务器&Ajax(下)数据请求&解决跨域&三级联动&session&堆栈
一.请求后端的JSON数据 JSON是前后端通信的交互格式,JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. JSON是互联网各个后台与 ...
- nodejs中req.body对请求参数的解析问题
首先,先了解一下关于http协议里定义的四种常见数据的post方法,分别是: application/www-form-ulrencoded multipart/form-data applicati ...
- Java中解决前端的跨域请求问题
在最近的分布式项目中,由于前端需要向后台请求数据,但不是同一个域名的,常用的ajax方法并不能成功调用,索然后台有数据返回,但是并不能被前端正常解析. 于是便查询知道了后台返回的数据格式的问题.不能用 ...
- Struts2(接受表单参数)请求数据自动封装和数据类型转换
Struts2请求数据自动封装: (1)实现原理:参数拦截器 (2)方式1:jsp表单数据填充到action中的属性: 普通的成员变量,必须给set,get可以不给的. 注意点,A ...
随机推荐
- Codeforces6E_Exposition
题意 给定一个序列,求有多少个最长连续子序列满足最大值减最小值之差不超过\(k\). 分析 跟序列最大值最小值有关的可以想到单调栈,先预处理出每个数作为最大值能延伸的区间,然后枚举每个数作为最大值. ...
- filebeat->redis->logstash->elasticsearch->kibana
整体流程 filebeat收集openresty应用日志传输到Redis集群中 Logstash从Redis集群中拉取数据,并传输到Elasticsearch集群 使用Kibana可视化索引 使用El ...
- python 路径操作工具 pathlib,比 os 模块好用太多
在 python 当中,如果你想控制路径,基本上绕不开 os.path.我希望看完这篇文章以后,熟练使用 python 的你能立刻开始使用 pathlib 模块,一刻也不要耽误. pathlib 相对 ...
- jstl用法 简介
<c:choose> <c:when test="${salary <= 0}"> 太惨了. </c:when> <c:when t ...
- jquery判断 input type="file"上传文件是否为空
要想获取type="file"的input内容,用var file = $("id").val();肯定是不行的,下面是代码: html上传按钮为: <i ...
- Action获取请求参数的3中方式
方式一:Action本身作为Model对象,通过属性注入(Setter)方法讲参数数据封装到Action中 具体为:在Action中,提供和参数名相同的几个属性,并为其提供set方法,那么,该参数会被 ...
- vue-mixins和vue高阶组件
我们在开发过程中,因为需求的变更,往往会遇见对现有组件的改造和扩展. 那么我们有什么方法对现有组件进行改造和扩展呢? 常见的我们可以使用mixins方式 下面就让我们来看一下怎么使用mixins方式对 ...
- iOS App沙盒目录结构
转自:http://blog.csdn.net/wzzvictory/article/details/18269713 出于安全考虑,iOS系统的沙盒机制规定每个应用都只能访问当前沙盒目录下面的文件( ...
- C# wpf 使用资源文件 resx
随意新建一个wpf应用 在cs代码编辑,增加 using System.Resources; 放在最上 在方案新建文件夹 名 文件 在 文件 新建资源文件 资源.resx 资源.resx 添加字符串 ...
- asp.net WebApi WebApiConfig.cs Web API 配置和服务
public static void Register(HttpConfiguration config) { ............................... var jsonSett ...