2.nodejs--路径(_dirname,_filname)、url网址、querystring模块、mime模块、各种路径(相对路径)、网页的加载(面试题*)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

目录

文章目录

1.路径(_dirname,_filname)

(1) __dirname

(2)__filename

2.url网址

3.querystring模块

(1)querystring.parse(str, [sep], [eq], [options])

(2)querystring.stringify(obj, [sep], [eq])

4.mime模块

(1)mime.getExtension()可以通过路径返回资源类型

(2) mime.getType()可以通过路径返回资源类型

5.各种路径(相对路径)

(1)本地相对路径

(2)本地绝对路径

(3)相对网络路径

(4)绝对网络路径

(5)本地相对根路径

(6)网络相对根路径

6.网页的加载(面试题*)



1.路径(_dirname,_filname)

 _dirname,_filnam都是全局变量

(1) __dirname

                是一个字符串,代表当前js文件所在目录的路径(绝对路径)

__dirname:返回当前模块文件解析过后所在的文件夹(目录)的绝对路径
        使用__dirname变量获得当前文件所在目录的完整目录名

        __dirname等同于path.dirname(__filename)

(2)__filename

                是一个字符串,代表当前js文件的路径(绝对路径)

__filename:返回当前模块文件被解析过后的绝对路径,
使用__filename变量获取当前模块文件的带有完整绝对路径的文件名

2.url网址

网址的组成:   协议://ip:port/pathname?querystring#hash

域名 ==>DNS解析  会把域名解析为一个ip port

程序例如:

var url=require("url")
var str="http://www.baidu.com/20220728/news/page1/index.html?count=20&maxid=123456"
var obj=url.parse(str)
console.log(obj);

运行结果:

3.querystring模块

        (1) querystring从字面上的意思就是查询字符串,一般是对http请求所带的数据进行解析。querystring模块只提供4个方法。

        (2)querystring参数解析为一个对象

        (3)querystring模块用于实现URL参数字符串与参数对象的互相转换

(1)querystring.parse(str, [sep], [eq], [options])

        parse这个方法是将一个字符串反序列化为一个对象。

        querystring.parse(str, [sep], [eq], [options])------将一个 query string 反序列化为一个对象。可以选择是否覆盖默认的分割符('&')和分配符('=')。

案例:

var querystring=require("querystring")
var obj=querystring.parse("username=jack&count=20&maxid=123456")
console.log(obj)

运行结果:

(2)querystring.stringify(obj, [sep], [eq])

        ------序列化一个对象到一个 query string。

  可以选择是否覆盖默认的分割符('&')和分配符('=')。 

举例:

var querystring=require("querystring")
var str2=querystring.stringify({name:"jack",age:20})
var str3=JSON.stringify({name:"jack",age:20})
console.log(str2);
console.log(str3);

运行结果:

          

4.mime模块

mime是一个互联网标准,通过设定它就可以设定文件在浏览器的打开方式

(1)mime.getExtension()可以通过路径返回资源类型

举例:

var mime=require("mime")
var re=mime.getExtension("text/css")
console.log(re)

运行结果:

(2) mime.getType()可以通过路径返回资源类型

举例:

var mime=require("mime")
var re2=mime.getType("htpp://2342354345:8080/css/sadfsdgfdfg.ttf")
console.log(re2)

运行结果:

5.各种路径(相对路径)

(1)本地相对路径

          以"./"或者"/"开头

                  例如:在页面中写路径: file://x1/x2/x2/index.html

(2)本地绝对路径

        从根盘符开始写路径

                例如:"C:/Windows/ASUS/Shortcuts"

(3)相对网络路径

          以"./"或者"/"开头

                例如:

                        当前页面的网址:  "协议://ip:port /src/news/index.html  querystring hash"

                        页面内部的路径:

                                 "./src/18.jpg" ==> "协议://ip:port /src/news/src/18.jpg"

(4)绝对网络路径

        "以http://"或者根盘符开头写路径

        格式:"协议://ip:port /src/news/src/18.jpg"

(5)本地相对根路径

         "/"开头

        例如:用户本地打开: "file:///c:/xx/xx2/index.html"

                页面中有一个img的src是 : "/src/18.jpg"

                它真正的路径:"file:///c:/src/18.jpg"

(6)网络相对根路径

        "/"开头

        例如:

                用户输入网址: http://192.168.60.160:8080/user/20220728/newspage

                打开了一个页面,在这个页面中有一个img的src是 : "/src/18.jpg"

                请问192.168.60.160:8080这个服务器会受到req.url是什么?

        答:"/src/18.jpg"

                它真正的网址:"http://192.168.60.160:8080/src/18.jpg"

6.网页的加载(面试题*)

1.浏览器是怎么加载网页的?

==>

(1.1)浏览器的地址栏,输入网址,敲回车,会请求一次服务器,服务器会返回一个数据包,就是网页代码(html格式的文本文档)。

(1.2)浏览器开始去运行解析html文本(此时还没有外部图片,js,css,字体库资源)

        (1.2.1)解析时,遇到了img标签的src属性,会异步的,开始再次网络请求服务器,服务器返回数据包(图片编码)然后渲染出来

        (1.2.2)解析时,遇到了link-href会异步的,开始再次网络请求服务器,服务器返回数据包(css编码),然后加载。

        (1.2.3)解析时,xxxx-url会异步的,开始再次网络请求服务器,服务器返回数据包(对应编码)然后加载。

        (1.2.4)解析时,script-src会异步的,开始再次网络请求服务器,服务器返回数据包(js编码),然后用js引擎去执行编码。

(1.3 )所有资源加载完毕了,才会触发window.onload

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值