Node.js中HTTP模块与URL模块的具体应用是什么
Admin 2022-08-13 群英技术资讯 450 次浏览
几乎每门编程语言都会包括网络这块,Node.js也不例外。今天主要是熟悉下Node.js中HTTP服务。其实HTTP模块是相当低层次的,它不提供路由、cookie、缓存等,像Web开发中不会直接使用,但还是要熟悉下,这样也方便以后的学习。
这个是非常常见的,在Node.js中有几种处理。
http://user:pass@host.com:80/resource/path/?query=string#hash
协议://身份认证@主机名.com:端口/路径/搜索/查询#散列
在URL模块中可以URL定义的属性和方法
exports.parse = urlParse; exports.resolve = urlResolve; exports.resolveObject = urlResolveObject; exports.format = urlFormat; exports.Url = Url; function Url() { this.protocol = null; this.slashes = null; this.auth = null; this.host = null; this.port = null; this.hostname = null; this.hash = null; this.search = null; this.query = null; this.pathname = null; this.path = null; this.href = null; }
上面代码可以看到URL模块定义了protocol、slashes等这些属性,还有parse、resolve 等方法.
/** * Created by Administrator on 2016/3/26. */ var url=require('url'); var urlStr='http://user:pass@host.com:80/rseource/path?query=string#hash'; //parse(urlStr,[parseQueryString],[slashesDenoteHost]) //parseQueryString 布尔值 true:URL查询字符串部分解析为对象字面量默认false //slashesDenoteHost 布尔值 true:把格式为//host/path的URL解析为:{host:'host',pathname:'/path'},而不是{pathname:'//host/path'} 默认false var urlObj=url.parse(urlStr,true,false); console.log(urlObj);
输出结果:
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe URL.js
Url {
protocol: 'http:',
slashes: true,
auth: 'user:pass',
host: 'host.com:80',
port: '80',
hostname: 'host.com',
hash: '#hash',
search: '?query=string',
query: { query: 'string' },
pathname: '/rseource/path',
path: '/rseource/path?query=string',
href: 'http://user:pass@host.com:80/rseource/path?query=string#hash' }Process finished with exit code 0
有时候请求的url和实际的物理地址并不一样,这就要进行虚拟地址和物理地址的转换。
var url=require('url'); var originalUrl='http://user:pass@host.com:80/rseource/path?query=string#hash'; var newResource='/another/path?querynew'; console.log(url.resolve(originalUrl,newResource));
输出结果:
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe URL.js
http://user:pass@host.com:80/another/path?querynewProcess finished with exit code 0
在做web开发中常常需要向服务端get 、post请求,请求的时候可能会带一些参数,需要对参数进行处理.比如:查询字符串转js对象或js对象转字符串。
这里要用到queryString模块的parse()和stringify()函数。
var qString=require('querystring') //QueryString.parse = QueryString.decode = function(qs, sep, eq, options) //1.qs 字符串 //2.sep 使用的分隔符 默认& //3.ep 使用的运算符 默认= //4.一个具有maxKey属性的对象 能够限制生成的对象可以包含的键的数量默认1000,0则无限制 var params=qString.parse("name=cuiyanwei&color=red&color=blue"); console.log(params); //QueryString.stringify = QueryString.encode = function(obj, sep, eq, options) console.log(qString.stringify(params,"&","="));
输出结果:
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe URL.js
{ name: 'cuiyanwei', color: [ 'red', 'blue' ] }
name=cuiyanwei&color=red&color=blueProcess finished with exit code 0
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
vue怎样做点击展开收起的功能?在很多网站上都能看到点击展开收起的功能,点击展开收起的效果能让网页设计更简洁好看,也是比较使用的,因此这篇文章就给大家分享一下vue实现点击展开收起效果的方法。
这篇文章主要给大家分享的是关于react的setstate的内容,对于setstate是同步还是异步的问题,一些朋友可能不是理解,对此我们通过示例来了解一下,感兴趣的朋友就继续往下看吧。
通过改变默认npm镜像代理服务,以下三种办法任意一种都能解决问题,建议使用第三种,将配置写死,下次用的时候不用重新配置。通过config命令npmconfigsetregistry https://registry.npm.taobao.orgnpminfounderscore(如果上面配置正确这个命令会有字符串response)命令行指定npm--registry
我们经常能在一些网站页面上看到圆圈序号列表,也就是带圆圈的需要,这样的序号列表能增加网页的美观性,那么圆圈序号列表怎样用js实现呢?下面就给大家分享一个JS实现彩色圆圈序号列表的实例。
这篇文章主要介绍了Vue实现圆环进度条的示例,帮助大家更好的理解和使用前端框架进行开发,感兴趣的朋友可以了解下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008