node模块之url模块初始

url模块初始:url是node提供的网址服务的一个模块!使用可以快速进行相对应的模块分析!

实例代码!

//引入模块
const http=require("http");
const url=require("url");
const hostname="127.0.0.1";
const port=3001
//创建
const server=http.createServer(function(req,res){

	res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"});
	//url.parse()可以将一个完整的URL地址,分为很多部分:
	//host、port、pathname、path、query
	//url.parse(string)将一个url地址转换为一个对象,返回一个对象
	const path=url.parse(req.url);
	//.pathname返回一个网站的目录不包含文件
	console.log("请求网站页面路径: pathname :"+ path.pathname);
	//.host返回一个主机名(域名和端口)
	console.log("请求网站主机: host:"+ path.host);
	//.hostname返回一个主机名(不包含端口)
	console.log("请求网站主机名: hostname :"+ path.hostname);
	//.port返回一个主机端口号
	console.log("请求网站主机端口号: port :"+ path.port);
	//.protocol返回一个http协议
	console.log("请求网站主机端口号: control"+ path.protocol);
	//.href返回一个完整的url地址
	console.log("请求网站页面路径: href :"+ path.href);
	//.query查询内容
	console.log("请求查询部分 query:" + path.query);
	//query的自定义参数查询age
	 var age=url.parse(req.url,true).query.age;
	console.log("自定义 age部分:" + age+ "岁");
	res.end("200,success");
})
//监听
server.listen(port,hostname)

url.parse()可以将一个完整的URL地址,分为很多部分,需要传入一个url地址作为参数

注意:如果使用query查询,需要将url.parse(url,true)需要新增一个参数(true)!

下面是一个完整的url模块进行对比使用

┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│                                            href                                             │
├──────────┬──┬─────────────────────┬─────────────────────┬───────────────────────────┬───────┤
│ protocol │  │        auth         │        host         │           path            │ hash  │
│          │  │                     ├──────────────┬──────┼──────────┬────────────────┤       │
│          │  │                     │   hostname   │ port │ pathname │     search     │       │
│          │  │                     │              │      │          ├─┬──────────────┤       │
│          │  │                     │              │      │          │ │    query     │       │
|"https:   //    user   :   pass   @ sub.host.com : 8080  /p/a/t/h  ?  query=string    #hash " │
          │  │          │          │   hostname   │ port │          │                │        │
│          │  │          │          ├──────────────┴──────┤          │                │       │
│ protocol │  │ username │ password │        host         │          │                │       │
├──────────┴──┼──────────┴──────────┼─────────────────────┤          │                │       │
│   origin    │                     │       origin        │ pathname │     search     │ hash  │
├─────────────┴─────────────────────┴─────────────────────┴──────────┴────────────────┴───────┤
│                                            href                                             │
└─────────────────────────────────────────────────────────────────────────────────────────────┘

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏奇梦博客

修复XiunoBBS后台关闭注册,前台显示语言包错误 原创 PHP XiunoBBS

1313
来自专栏Flutter入门到实战

快速在线制作json接口,从此写项目引入接口就简单多了

1741
来自专栏python3

python导入模块--import--2

在跟之前test_import_color_print.py同级目录下创建testimport.py文件,不然导模块会有问题

982
来自专栏Java技术栈

Maven精选系列--过滤不同环境配置文件

背景介绍 项目有开发、测试、生产至少有这三个环境,所需要的配置信息肯定不一样,所以打包的时候可以指定使用哪一个配置文件。 如测试环境使用:mvn package...

44416
来自专栏肖洒的博客

爬虫入门(二):单线程爬虫

将下载的后缀为whl的文件改为zip, 解压文件,获得requests文件,拷贝到C盘的python/lib文件夹中。

852
来自专栏别先生

vmware安装centOs操作系统配置网络的一系列问题

1:最近公司在测试项目,需要在linux操作系统上面测试,可惜自己之前学linux操作系统不是很深,配置网络也不是很熟练,网上方法太多,但是不是很好用,确实难为...

21510
来自专栏coder修行路

Python爬虫番外篇之关于登录

常见的登录方式有以下两种: 查看登录页面,csrf,cookie;授权;cookie 直接发送post请求,获取cookie 上面只是简单的描述,下面是详细的针...

33310
来自专栏轻扬小栈

Xware Desktop linux下的迅雷 — ubuntu 14.04 安装

1K7
来自专栏Java成神之路

Git_学习_07_ 推送修改到远端

733
来自专栏技术专栏

Intellij IDEA 修改项目名称

4.9K2

扫码关注云+社区

领取腾讯云代金券