设为首页 收藏本站
查看: 1276|回复: 0

[经验分享] nodejs之url模块

[复制链接]

尚未签到

发表于 2017-2-24 09:39:04 | 显示全部楼层 |阅读模式
  鄙人初步学习nodejs,目前在读《nodejs入门》这一本书,书很小,但是让我知道了如何用nodejs创建一个简单的小项目。例如如何创建一个服务器啦,例如http.createServer,还有根据不同的请求路径来设置路由选择啦,模块引入,创建模块啦,巴拉巴拉的东西。
  现在还没有看完这本书,看完了再来写读后感吧。
  今天主要记录的是关于nodejs里面的一个简单的模块,url模块。这个url的模块要使用的话需要先引入。若只是在命令行里比如cmd或git bash 等使用url这个模块的话,是不需要require进来的。直接使用便可。(我也不知道为啥不用require)
  const这个关键字是ES6里面定义的常量,不可改变。



const url = require("url");
  url一共提供了三个方法,分别是url.parse();  url.format();  url.resolve();
  1 url.parse(urlString,boolean,boolean)
  parse这个方法可以将一个url的字符串解析并返回一个url的对象
  参数:urlString指传入一个url地址的字符串
  第二个参数(可省)传入一个布尔值,默认为false,为true时,返回的url对象中,query的属性为一个对象。
  第三个参数(可省)传入一个布尔值,默认为false,为true时,额,我也不知道有什么不同,可以去看看API。
  例子1,url.parse只传一个参数的情况。



url.parse("http://user:pass@host.com:8080/p/a/t/h?query=string#hash");
/*
返回值:
{
   protocol: 'http:',
   slashes: true,
   auth: 'user:pass',
   host: 'host.com:8080',
   port: '8080',
   hostname: 'host.com',
   hash: '#hash',
   search: '?query=string',
   query: 'query=string',
   pathname: '/p/a/t/h',
   path: '/p/a/t/h?query=string',
   href: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
  }
没有设置第二个参数为true时,query属性为一个字符串类型
*/
  例子2,url.parse第二个参数为true的情况



url.parse("http://user:pass@host.com:8080/p/a/t/h?query=string#hash",true);
/*
返回值:
  {
   protocol: 'http:',
   slashes: true,
   auth: 'user:pass',
   host: 'host.com:8080',
   port: '8080',
   hostname: 'host.com',
   hash: '#hash',
   search: '?query=string',
   query: { query: 'string' },
   pathname: '/p/a/t/h',
   path: '/p/a/t/h?query=string',
   href: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
  }
返回的url对象中,query属性为一个对象
*/
  2 url.format(urlObj)
  format这个方法是将传入的url对象编程一个url字符串并返回
  参数:urlObj指一个url对象
  例子3,url.format



url.format({
protocol:"http:",
host:"182.163.0:60",
port:"60"
});
/*
返回值:
'http://182.163.0:60'
*/
  3 url.resolve(from,to)
  resolve这个方法返回一个格式为"from/to"的字符串,在宝宝看来是对传入的两个参数用"/"符号进行拼接,并返回
  例子4,url.resolve



url.resolve("http://whitemu.com","gulu");
/*
返回值:
'http://whitemu.com/gulu'
*/
  结束语:
  好啦,对于url这个模块的总结就那么多啦,若有什么理解错误的地方还需要指正,谢谢。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-346450-1-1.html 上篇帖子: nodejs 回调地狱解决 promise async 下篇帖子: NodeJs 开发微信公众号(三)微信事件交互
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表