nodeJs学习-03 GET数据请求,js拆解/querystring/url
原生JS解析参数:
const http = require('http');
http.createServer(function(req,res){
var GET = {}; //接收数据容器
if(req.url.indexOf('?')!= -1){ //因为req.url中可能没有数据,或者是favicon.ico,为避免报错,我们要进行判断
//req获取前台请求数据
// console.log(req.url); //?userName=dsdf&pass=sdfsf
var arr = req.url.split("?");
var url = arr[0];
// arr[1] => 数据:userName=dsdf&pass=sdfsf
var arr2 = arr[1].split('&'); // => ['userName=dsdf',pass=sdfsf]
for(var i=0;i<arr2.length;i++){
var arr3 = arr2[i].split('=');
//arr3[0] => 名字 'usrName';
//arr[1] => 数据 '密码'
GET[arr3[0]] = arr3[1];
}
}else{
var url = req.url;
};
console.log(url,GET); //{userName:'name','pass':'23424'}
//!!!因为要解析GET参数比较麻烦,所以node有专门的模块:querystring
// querystring 模块提供了一些实用函数,用于解析与格式化 URL 查询字符串。
res.write('aaa');
res.end();
}).listen(8088);
querystring解析参数
//因为要解析GET参数比较麻烦,所以node有专门的模块:querystring
// querystring 模块提供了一些实用函数,用于解析与格式化 URL 查询字符串。 const queryString=require('querystring'); var json= queryString.parse('userName=blue&pass=123445&age=18');
console.log(json); //{ userName: 'blue', pass: '123445', age: '18' }
url解析参数:
const urlLib=require('url');
var obj = urlLib.parse('http://www.zihe8888.com/index?userName=blue&pass=123445&age=18');
console.log(obj);
// Url {
// protocol: 'http:',
// slashes: true,
// auth: null,
// host: 'www.zihe8888.com',
// port: null,
// hostname: 'www.zihe8888.com',
// hash: null,
// search: '?userName=blue&pass=123445&age=18',
// query: 'userName=blue&pass=123445&age=18',
// pathname: '/index',
// path: '/index?userName=blue&pass=123445&age=18',
// href: 'http://www.zihe8888.com/index?userName=blue&pass=123445&age=18' }
var obj = urlLib.parse('http://www.zihe8888.com/index?userName=blue&pass=123445&age=18',true); //带上参数true,就会自动解析query为对象了
console.log(obj);
// Url {
// protocol: 'http:',
// slashes: true,
// auth: null,
// host: 'www.zihe8888.com',
// port: null,
// hostname: 'www.zihe8888.com',
// hash: null,
// search: '?userName=blue&pass=123445&age=18',
// query: { userName: 'blue', pass: '123445', age: '18' }, //数据部分
// pathname: '/index', //地址部分
// path: '/index?userName=blue&pass=123445&age=18',
// href: 'http://www.zihe8888.com/index?userName=blue&pass=123445&age=18' }
案例:最简单的解析方法
// 最简单的解析方法!!!!!
const http = require('http');
const urlLib=require('url');
http.createServer(function(req,res){
var obj = urlLib.parse(req.url,true);
var url = obj.pathname; //文件名称
var GET = obj.query;
console.log(GET);
console.log(url);
res.write('aaa');
res.end();
}).listen(8088);
nodeJs学习-03 GET数据请求,js拆解/querystring/url的更多相关文章
- nodeJs学习-04 POST数据请求,分段发送,分段接收
const http = require("http"); const querystring= require('querystring'); http.createServer ...
- nodejs学习笔记<四>处理请求参数
在web开发中处理请求参数是个非常常见的工作:nodejs提供了了querystring用来处理请求参数. querystring常用方法有:parse,stringify. (1)parse: 解析 ...
- python学习-- Django传递数据给JS
var List = {{ List|safe }};//safe 必须存在
- Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识
目录 前言 新建express项目并自定义路由规则 如何提取页面中的公共部分? 如何提交表单并接收参数? GET 方式 POST 方式 如何字符串加密? 如何使用session? 如何使用cookie ...
- Nodejs学习笔记(六)—Node.js + Express 构建网站预备知识
前言 前面经过五篇Node.js的学习,基本可以开始动手构建一个网站应用了,先用这一篇了解一些构建网站的知识! 主要是些基础的东西... 如何去创建路由规则.如何去提交表单并接收表单项的值.如何去给密 ...
- Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例
目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装项目其它需要包 清除冗余文件并重新规划项目目录 配置文件 规划示例路由,并新建相关文件 实现数据访问和业务逻辑相关方法 编写mys ...
- mpvue学习笔记-之微信小程序数据请求封装
简介 美团出品的mpvue已经开源出来很久了,一直说要进行一次实践,这不最近一次个人小程序开发就用上了它. 看了微信官方的数据请求模块--request,对比了下get和post请求的代码,发现如果在 ...
- [转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例
本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装 ...
- day 74 vue 2 axios数据请求 以及组件的学习
前情提要: vue 学习二: 一: 通过axios实现数据请求 1:json数据语法 json数据对象类似于JavaScript中的对象,但是它的键对应的值里面是没有函数方法的,值可以是普通变量, ...
随机推荐
- stream之累加求和
1.集合中直接包含BigDecimal元素的累加 List<Integer> list = new ArrayList<>();list.add(3);list.add(7); ...
- [原创]iFPGA-Cable FT2232H Xilinx / Altera / Lattice 三合一JTAG & UART调试器-详细使用说明
iFPGA-Cable调试器使用说明 全文分为6部分: 第0部分:实物.连线及其驱动安装说明 第1部分:Xilinx JTAG 第2部分:UART 第3部分:Altera JTAG 第4部分:Latt ...
- hdu 5823 color II——子集dp(独立集)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5823 独立集染一种颜色.在这个基础上枚举子集来dp. 状压一样地存边真是美妙. 2^32是1ll<& ...
- redis异常-MISCONF Redis is configured to save RDB snapshots
在eclipse中用java代码通过jedis操作redis的时候,报这个错: redis.clients.jedis.exceptions.JedisDataException: MISCON ...
- poi操作word,简单写docx
参考博客: https://www.cnblogs.com/guilty/p/3977016.html 在HWPF中换行符是"\013",在XWPF中是run.addBreak() ...
- Python服务端工程师就业面试指导
Python服务端工程师就业面试指导 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的时候 ...
- 使用session实现一次性验证码
在登录页面和各种页面,会看到有验证码输入,这样做的目的是为了防止密码猜测工具破解密码,保护了用户密码安全,验证码只能使用一次,这样就给密码猜测工具带来了很大的困难,基本上阻断了密码猜测工具的使用. 可 ...
- MacBook下为要运行的.net core 项目指定sdk版本
安装完.net core 3.0,运行早期版本构建的项目遇到运行错误,查阅官方文档解决问题,特此记录!官方原文如下: SDK 使用最新安装的版本 SDK 命令包括 dotnet new 和 dotne ...
- Python实例 类和继承
class Base: def __init__(self): self.data = [] def add(self, x): self.data.a ...
- Spring 社区的首个国产开源项目顺利毕业
相信大家对上周的 <来自 Spring Cloud 官方的消息,Spring Cloud Alibaba 即将毕业>文章记忆犹新.本周,Spring Cloud Alibaba 正式毕业, ...