手机版

NodeJS学习笔记的(网址、查询字符串、路径)模块

时间:2021-10-15 来源:互联网 编辑:宝哥软件园 浏览:

一、开篇分析。

本文将这三个模块放在一起,因为它们各自的长度不是很长,其次它们之间存在依赖关系,所以依次介绍,并举例分析。废话少说,请看以下文件:

(1)、“Url模块”

来一个栗子:

复制代码如下: var URL=require(' URL ');var query Url=' http://localhost :8888/bb?name=big bear memo=hello world ';console . log(type of URL . parse(query Url));console . log(URL . parse(query Url));

运行结果:

复制代码如下:对象//类型{protocol:' http : ',slashe: true,auth3360 null,host:' localhost3360888 ',port3360' 8888 '。hostname: 'localhost ',hash: null,search: '?name=bigbearmemo=helloworld ',query : ' name=big bear memo=hello world ',pathname: '/bb ',path: '/bb?name=bigbearmemo=helloworld ',href : ' http://localhost :888/bb?name=bigbearmemo=helloworld'}

解释如下:

Protocol : Request Protocol host : URL主机名已转换为小写,包括端口信息auth:URL身份验证信息部分hostname:主机主机名部分,转换为小写port:主机端口号部分pathname: URL路径部分,位于主机名之后且请求查询之前,search: URL的“查询字符串”部分,包括初始问号。路径:路径名和搜索连接在一起。Query:查询字符串的参数部分(问号后的字符串部分),或者使用querystring.parse()解析后返回的对象。“#”后有h: URL(包括#符号)。

补充API:‘URL . format(URL obj)’(9501 . 163.com)。

函数:输入一个网址对象并返回格式化的网址字符串。

(2)、“查询模块”

“QueryString”模块用于实现URL参数字符串和参数对象的相互转换,从而得到一个栗子,如下图:

复制代码如下: var URL=require(' URL ');var QS=require(' query string ');var query Url=' http://localhost :8888/bb?name=big bear memo=hello world ';queryUrl=url.parse(queryUrl)。查询;console . log(queryrol);console . log(QS . parse(queryrol));

操作结果如下:

复制的代码如下:名称=大熊备忘录=Hello World {名称:‘大熊’,备忘录:‘Hello World }

补充api:

查询字符串。Stringify (obj,[sep],[eq])-将对象序列化为querystring。

您可以选择是否覆盖默认分隔符(“”)和分配器(“=”)。

query string . stringify({ foo : ' bar ',baz: 'qux'},';',' :')//返回以下字符串' foo:barbaz:qux '

查询。parse (str,[sep],[eq],[options])-将查询字符串反序列化为对象。您可以选择是否覆盖默认分隔符(“”)和分配器(“=”)。Options对象可能包含maxKeys属性(默认值为1000),该属性可用于限制已处理的键的数量。将其设置为0可以取消键数量的限制。示例:query string . parse(' foo=barbaz=qux baz=quuxhall ')//{ foo : ' bar ',baz。

(3)、“路径模块”

该模块包含一组用于处理和转换文件路径的工具。几乎所有的方法都只转换字符串,文件系统不会检查路径是否真实有效。

让我们从一个简单的栗子开始:

复制代码如下: var URL=require(' URL ');var QS=require(' query string ');var path=require(' path ');var query Url=' http://localhost :8888/bb?name=big bear memo=hello world ';var root=path . basename(query Url);console.log(根);//bb?name=bigbearmemo=helloworld

返回路径的最后一部分,除以“/”。

复制代码代码如下: var URL=必选(' URL ');var QS=require('查询字符串');var path=require(' path ');var查询URl=' http://localhost :8888/bb?名称=大熊备忘录=hello world ';var root=路径。basename(查询URl);console.log(根);//bb?name=大熊memo=hellowordvar ext=path。ext名称(根);console.log(ext || "不是扩展名!") ;//不是外部名称!由于美国石油学会(美国石油协会)过多,以上只列出来了常用的几个,大家需认真阅读文档。

二,综合栗子

场景描述-服务器接到不同情况的请求,通过" Url "分别做不同处理,代码如下:

(1),建立“index.html”

复制代码代码如下:doctype html html标题big bear/title meta Content=' IE=8 ' http-equiv=' X-UA-Compatible '/meta http-equiv=' Content-Type ' Content=' text/html;charset=UTF-8 ' style type=' text/CSS ' div { margin-top : 50px;宽度: 100%;余量: 0px高度:120 px行高:120 pxcolor : # ffffont-size :22 px;背景# ff9900文本对齐:中心;}/style脚本src=' http :索引。js '/脚本/头体div你好,大熊!/div /body/html

(2),建立" index.js "

提醒('你好bb!) ;//为了测试就这么一句代码(3),建立" server.js "

复制代码代码如下: var http=require(' http ');var fs=require(' fs ');var URL=必选(' URL ');var path=require(' path ');http.createServer(函数(请求,响应){ var method=request . method method=method。tolowercase();var FIlename=路径。basename(请求。网址);var ext name=路径。扩展名(FIlename);var root=' ./' ;if('get'==方法){ if(extName){ fs.readFile(' ./' fileName,' utf-8 ',函数(错误,数据){ if(错误)引发错误;response.writeHead(200,{ "内容类型": {)。CSS“:”文本/css ",js' : '应用程序/JavaScript ' }[extName]});response.write(数据);回应。end();});} else{ fs.readFile(根index.html ',' utf-8 ',函数(错误,数据){ if(错误)引发错误;response.writeHead(200,{ ' Content-Type ' : ' text/html ' });response.write(数据);回应。end();});} } else if(' post '==请求。URL){//在此处理post } }).听(8888);控制台日志("网络服务器正在运行,端口为-8888");node server.js运行一下。

三,总结一下

(1),理解上述三个模块之间的联系,灵活使用。(2),熟练使用'网址,查询字符串,路径'三个模块相关的api。(3),最后强调:理解上面例子中的代码意图,不断重构,不断总结。

版权声明:NodeJS学习笔记的(网址、查询字符串、路径)模块是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。