Node模块之path,url,os模块

2,785 阅读5分钟

1.path模块

  • 如何得知自己的当前位置和目标文件夹的位置,这是作为对本地文件进行操作的基础

  • path是一个对象,内部有很多属性和方法

  • posix:可移植操作系统接口,定义一些api的规范

  • join方法:连接路径

    join(__dirname,"拼接的路径")

    __dirname:当前文件所在的目录名称(绝对路径),__filename:当前文件所在的目录名称+文件名称(绝对路径)

  • resolve方法:用于将相对路径转换为绝对路径

  • relative方法:方法接受两个参数,这两个参数都应该是绝对路径。该方法返回第二个路径相对于第一个路径的那个相对路径。

  • parse方法:解析一个目录,返回路径各部分的信息

    返回参数:

    1.root:路径的根目录,一般都是盘符(linux下就是/)

    2.dir:就是文件所在的绝对路径(dirname模式下这就是, 文件所在目录的上级目录)

    3.base:文件的基本信息(dirname模式下这就是, 文件所在目录相对于上级目录的相对路径)

    4.ext:文件拓展名(dirname模式下, 没有后缀名,就是空值)

    5.name:文件名(dirname模式下,这个就是文件夹名称)

2. url模块

  • url模块用于生成和解析URL。该模块使用前,必须加载。

  • url 模块提供了两套 API 来处理 URL:一个是旧版本遗留的 API,一个是实现了 WHATWG标准的新 API。

    旧api就是url.parse里面的部分,新api就是URL里面的部分

  • 建议使用新版本,使用解构赋值的方式导入模块

  • URL是一个构造函数,使用时有两种传参方式

    ① 传入一个完整的绝对地址

    let {URL} = require("url")
    let nowUrl = ("https://juejin.cn/user/1442193016097928")
    

    ② 第一个参数传入相对路径,第二个参数传入绝对路径,两者拼接进行分析

    let nowUrl2 = new URL("/1442193016097928","https://juejin.cn/user")
    console.log(nowUrl2);
    

    参数解析:

    1.hash:获取及设置 URL 的片段部分。分配给 hash 属性的值中包含的无效 URL 字符是百分比编码的

    2.host:获取及设置 URL 的主机部分。(也就是域名加端口部分)

    3.url.hostname:获取及设置 URL 的主机名部分。 url.hosturl.hostname 之间的区别是 url.hostname 不包含端口

    4.href:获取及设置序列化的 URL。获取href属性的值等同于调用 url.toString()。将此属性的值设置为新值等同于使用 new URL(value) 创建新的URL对象。 URL 对象的每个属性都将被修改。如果给 href 属性设置的值是无效的 URL,则将会抛出 TypeError

    5.origin:包含了协议的host, 获取只读的序列化的 URL 的 origin。

    6.port:端口获取及设置 URL 的端口部分。端口值可以是数字或包含 0 到 65535(含)范围内的数字字符串.端口可以是空字符串的,这时端口就会自动根据协议来选取

    7.protocol:设置连接协议, 无效协议值会被忽略. 比如http或是https

    8.search:获取及设置 URL 的序列化查询部分。

    9.searchParams:获取表示 URL 查询参数的URLSearchParams对象。 该属性是只读的。 使用 url.search 设置来替换 URL 的整个查询参数

3. querystring模块

  • querystring模块主要用来解析查询字符串

  • querystring.parse()方法用于将一个查询字符串解析为 JavaScript 对象。

  • parse方法一共可以接受四个参数。

    str:需要解析的查询字符串

    sep:多个键值对之间的分隔符,默认为&

    eq:键名与键值之间的分隔符,默认为=

    options:配置对象,它有两个属性,decodeURIComponent属性是一个函数,用来将编码后的字符串还原,默认是querystring.unescape(),默认情况下,将假定查询字符串中的百分比编码字符使用 UTF-8 编码。 如果使用其他字符编码,则需要指定其他值; maxKeys属性指定最多解析多少个属性,默认是1000,如果设为0就表示不限制属性的最大数量。

4.os模块

  • os模块提供与操作系统相关的方法

  • os.EOL属性是一个常量,返回当前操作系统的换行符(Windows系统是\r\n,其他系统是\n),记住,这个换行符是不可见的,咱们看到的就是个效果

  • os.arch()返回当前计算机的架构

    现在可能的值有:'arm'、 'arm64'、 'ia32'、 'mips'、 'mipsel'、 'ppc'、 'ppc64'、 's390'、 's390x'、 'x32'、 'x64'

  • s.networkInterfaces() 方法返回一个对象,包含只有被赋予网络地址的网络接口。

    被赋予网络地址的对象包含的属性:

    1.address 被赋予的 IPv4 或 IPv6 地址。

    2.netmask IPv4 或 IPv6 子网掩码。

    3.family IPv4 或 IPv6。

    4.mac 网络接口的 MAC 地址。

    5.internal 如果网络接口是 loopback 或相似的远程不能用的接口时,值为 true,否则为 false。

    6.scopeid IPv6 数字领域识别码(只有当 family 是 IPv6 时可用)。

    7.cidr 以 CIDR 表示法分配的带有路由前缀的 IPv4 或 IPv6 地址。如果 netmask 参数不可用,则该属性是 null。

  • os.platform():返回一个字符串,指定 Node.js 编译时的操作系统平台

    release():返回一个操作系统的版本号

    cpus():返回一个逻辑CPU内核的信息