1、自己写

const http = require('http');

http.createServer(function(req,res){
var get = {};
if(req.url.indexOf('?')!=-1){
var arr = req.url.split('?');
var url = arr[0];
var arr2 = arr[1].split('&');
for(var i=0;i<arr2.length;i++){
var arr3 = arr2[i].split('=');
get[arr3[0]]=arr3[1];
}
}else{
var url = req.url;
}
console.log(url,get);
res.write('aaa');
res.end();
}).listen(8080);

2、引入querystring模块

const http = require('http');
const querystring = require('querystring');
http.createServer(function(req,res){
var get = {};
if(req.url.indexOf('?')!=-1){
var arr = req.url.split('?');
var url = arr[0];
get = querystring.parse(arr[1]);
}else{
var url = req.url;
}
console.log(url,get);
res.write('aaa');
res.end();
}).listen(8080);

3、引入url模块

const http = require('http');
const urlli = require('url'); http.createServer(function(req,res){
var obj = urlli.parse(req.url,true); //true解析,如果没有true,默认不解析
var url = obj.pathname;
var get = obj.query;
console.log(url,get);
res.write('aaa');
res.end();
}).listen(8080);

提交表单的HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="http://localhost:8080/aaa" method="get">
用户:<input type="text" name="user" value=''><br>
密码:<input type="password" name="pass" value=''><br>
<input type="submit" value="提交">
</form>
</body>
</html>

个人练习如下:

const http = require("http");
const queryString = require("querystring");
const urlNode = require('url'); http.createServer((req,res)=>{
console.log(req.url); // /aaa?user=123&pass=456
var get = {};
var url = '';
if(req.url.indexOf('?') != -1){ //方法一:切割字符串
// var _arr = req.url.split('?'); //['aaa','user=123&pass=456']
// url = _arr[0]; //'aaa'
// var _arr2 = _arr[1].split('&'); //['user=123','pass=456']
// _arr2.map((v,k,arr)=>{
// var key = v.split('=')[0];
// var value = v.split('=')[1];
// get[key] = value;
// }) //方法二:正则表达式
// var query = req.url.substr(req.url.indexOf('?')+1);
// var regAll = new RegExp("([^?&=]+)=([^?&=]*)", "gi");
// var regSingle = new RegExp("([^?&=]+)=([^?&=]*)", "i");
// var arrAll = query.match(regAll); //["user=123", "pass=456"]
// arrAll.map(function(v,k,arr){
// var resultArr = v.match(regSingle);
// get[resultArr[1]] = resultArr[2];
// })
//方法三:引入querystring模块
// const arr = req.url.split('?');
// url = arr[0];
// get = queryString.parse(arr[1]);
//方法四:
// const obj = urlNode.parse(req.url,true);
// url = obj.pathname;
// get = obj.query; }else{
url = req.url;
}
console.log(url,get);
res.write('123456')
res.end('12')
}).listen(8000)

以上都 是原生node实现:

下面的是express中  req.query 就可以方便的取到 { id 123456}

app.get('/article',(req,res)=>{
console.log(req.query) })

原文链接:https://blog.csdn.net/alberqing_/article/details/81452487

node环境下多种方式“get数据解析”的更多相关文章

  1. Node.js(window)基础(2)——node环境下的模块,模块间调用

    参考:http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450241959 ...

  2. node环境下:node_modules里面的文件

    node环境下:node_modules里面的文件 package.json来制定名单,需要哪些npm包来参与到项目中来,npm install命令根据这个配置文件增减来管理本地的安装包. depen ...

  3. 非node环境下的vue.js 实现简单的购物车计算功能 样式请无视

    都说vue的双向数据绑定好用,自己用了下,感觉做购物车没想象中好用.自己的实现如下: <!DOCTYPE html> <html lang="en"> &l ...

  4. 「C语言」在Windows平台搭建C语言开发环境的多种方式

    新接触C语言,如何在Windows下进行C语言开发环境的搭建值得思考并整理. 以下多种开发方式择一即可(DEV C++无须环境准备). 注:本文知识来源于  Windows 平台搭建C语言集成开发环境 ...

  5. node 环境下简单web服务器搭建代码

    零.前置 已经安装 node 环境. 一.代码片段 var http = require('http'); var path = require('path'); var fs = require(' ...

  6. 一次生产环境下MongoDB备份还原数据

    最近开发一个版本的功能当中用到了MongoDB分页,懒于造数据,于是就研究了下从生产环境上导出数据到本地来进行测试. 研究了一下,发现MongoDB的备份还原和MySQL语法还挺类似,下面请看详细介绍 ...

  7. node环境下安装vue-cli

    一. node安装 1)如果不确定自己是否安装了node,可以在命令行工具内执行: node -v  (检查一下 版本): 2)如果 执行结果显示: xx 不是内部命令,说明你还没有安装node , ...

  8. windows环境下使用MySQL导入数据乱码报错的解决办法

    Linux及Mac系统下使用source xxx.sql 可直接导入测试数据(注意必须先切换到当前xxx.sql的目录下), 但在Windows环境下导入会出现乱码报错的情况, 主要是因为编码的问题, ...

  9. ie浏览器下get方式获取数据无效问题

    在ie浏览器用get方式获取数据时因为发送得到参数地址都是一样的,所以浏览器会优先从缓存获取数据,而不去服务器请求数据,post由于参数不同所以不会影响. 解决方法: 1.  Internet选项-- ...

随机推荐

  1. docker容器的基本使用

    ### Docker中镜像的基本使用以及Docker的基本使用 #### 1.Docker的安装 ```先进入终端,然后使用以下命令:sudo apt-get updatesudo apt-get i ...

  2. 正则表达式(Regular Expression)入门

    一.正则表达式的使用场景: 上传文件类型的判断,电子邮件的判断,电话号码的判断,文本的搜索与替换. 二.正则表达式的语法规则: 1.行定位符: ^表示行的开始,$表示行的结尾 ^tm 可以匹配  tm ...

  3. java 主动信任证书

    java 主动信任证书 SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, mid.toCharArray() ...

  4. 网易发起“疾风”智造IoT联盟,深化“互联网+先进制造业”发展

    7月26日,2019网易云创峰会在杭州拉开序幕,本次峰会以“连接•洞察•进化”为主题,汇聚行业领袖.技术大咖及业界代表,探讨技术演进与行业应用趋势,研商生态合作升级.共赢未来的道路.上午的主论坛中,网 ...

  5. EEPROM的概念接口类型及软件实例

    基本概念 EEPROM的全称是“电可擦除可编程只读存储器”,即Electrically Erasable Programmable Read-Only Memory.是相对于紫外擦除的rom来讲的.但 ...

  6. Nginx 常用模块

    Nginx 常用模块 1. ngx_http_autoindex_module # ngx_http_autoindex_module模块处理以斜杠字符(' / ')结尾的请求,并生成一个目录列表. ...

  7. Node.js module export async function

    一.Demo 1.首先定义 module 文件:bbb.js const fs = require("fs"); function readFileSync() { let res ...

  8. 织女星开发板调试器升级为Jlink固件

    前言 为了能使用板载的FreeLink调试器来调试RISC-V内核,我们需要把默认的CMSIC-DAP固件,升级为JLink固件,固件升级之后,通过选择使用不同的驱动程序,来支持ARM内核还是RISC ...

  9. Python爬虫实战教程:爬取网易新闻

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Amauri PS:如有需要Python学习资料的小伙伴可以加点击 ...

  10. Go-包

    Go-包 包的介绍以及使用 为什么使用包 为了更加好的维护代码 包的位置 必须再GOPATH路径的src中 能导入的内容 导入的内容名称必须是大写字母开头不然无法导入 包 src中的一个文件夹为一个包 ...