node核心模块详解(一)

14 篇文章 0 订阅

node核心模块(一)

Path模块

如何去得知自己的当前位置和目标文件的位置,这是作为对本地文件进行操作的基础,path 模块提供了一些实用工具,用于处理文件和目录的路径

path.join方法用于连接路径。该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是”/“,Windows系统是”\“。

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

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

let path=require("path");
console.lgo(path.join(_dirname,'src'))
console.lgo(path.join(_filename,'src'))

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fvJdUYJy-1603468854546)(E:\凯文的前端博客\框架部分images\5.1.png)]

path.resolve方法用于将相对路径转为绝对路径。

它可以接受多个参数,依次表示所要进入的路径,直到将最后一个参数转为绝对路径。如果根据参数无法得到绝对路径,就以当前所在路径作为基准。除了根目录,该方法的返回值都不带尾部的斜杠。

从后向前,若字符以 / 开头,不会拼接到前面的路径;若以 …/ 开头,拼接前面的路径,但是不含前面一节的最后一层路径;若以 ./ 开头 或者没有符号 则拼接前面路径;因为/是根目录

let path=require("path")
consloe.log(path.resolve("_dirname","src","js","es6"))

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5O2lT9Iy-1603468854550)(E:\凯文的前端博客\框架部分images\5.2.png)]

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

path.relative() 方法根据当前工作目录返回 fromto 的相对路径。 如果 fromto 各自解析到相同的路径(分别调用 path.resolve() 之后),则返回零长度的字符串。

path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb');
// 返回: '..\\..\\impl\\bbb'

如果 fromto 不是字符串,则抛出 TypeError

path.parse()方法可以返回路径各部分的信息。path.parse() 方法会返回一个对象,其属性表示 path 的有效元素。 尾部的目录分隔符会被忽略

path.parse('C:\\目录1\\目录2\\文件.txt');
// 返回:
// { root: 'C:\\',
//   dir: 'C:\\目录1\\目录2',
//   base: '文件.txt',
//   ext: '.txt',
//   name: '文件' }

参数讲解:
root:路径的根目录,一般都是盘符(linux下就是/)
dir:就是文件所在的绝对路径(dirname模式下这就是, 文件所在目录的上级目录)
base:文件的基本信息(dirname模式下这就是, 文件所在目录相对于上级目录的相对路径)
ext:文件拓展名(dirname模式下, 没有后缀名,就是空值)
name:文件名(dirname模式下,这个就是文件夹名称)

url模块

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

url 模块提供了两套 API 来处理 URL:一个是旧版本遗留的 API,一个是实现了 WHATWG标准的新 API。
旧api就是url.parse里面的部分
新api就是URL里面的部分

建议只使用新API

使用方法如下:

const url = require('url');
new URL(input[, base])

input 要解析的绝对或相对的 URL。如果 input 是相对路径,则需要 base。 如果 input 是绝对路径,则忽略 base。
base | 如果 input 不是绝对路径,则为要解析的基本 URL。

const myURL = new URL('/foo', 'https://example.org/');
console.log(myURL);
// https://example.org/foo

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yadBXg5T-1603468854552)(E:\凯文的前端博客\框架部分images\5.3.png)]

当第一个参数是相对路径, 那么第二个参数就是绝对路径,然后两者衔接, 最后一期进行分析

queryString模块

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

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

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

例如,查询字符串 'foo=bar&abc=xyz&abc=123' 会被解析为:

{
  foo: 'bar',
  abc: ['xyz', '123']
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HKjgZsnD-1603468854556)(E:\凯文的前端博客\框架部分images\5.4.png)]

querystring模块之stringify
querystring.stringify(obj[, sep[, eq[, options]]])

该方法可以理解为是parse的逆向方法,作用就是把一个对象改成一个查询字符串( 比如本地经过一番操作,确定了一组数据,现在要把数据组合成一个请求连接, 那么就需要这个操作了 )

obj:需要组合的目标对象
sep:多个键值对之间的分隔符,默认为&
eq:键名与键值之间的分隔符,默认为=
options:配置对象,它有两个属性,encodeURIComponent:在查询字符串中将 URL 不安全字符转换为百分比编码时使用的函数, 默认就是querystring.escape()

querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });
// 返回 'foo=bar&baz=qux&baz=quux&corge='

querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':');
// 返回 'foo:bar;baz:qux'
os模块

os模块提供与操作系统相关的方法。使用方法如下:

const os = require('os');
EOL属性

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

操作系统特定的行末标志。

  • 在 POSIX 上是 \n
  • 在 Windows 上是 \r\n
let os = require('os');
console.log("其他信息");
console.log(os.EOL);
console.log("其他信息");

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4B4EjWLn-1603468854558)(E:\凯文的前端博客\框架部分images\5.6.png)]

os模块之networkInterfaces方法

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

let os = require('os');
console.log(os.networkInterfaces());

被赋予网络地址的对象包含的属性:
address 被赋予的 IPv4 或 IPv6 地址。
netmask IPv4 或 IPv6 子网掩码。
family IPv4 或 IPv6。
mac 网络接口的 MAC 地址。
internal 如果网络接口是 loopback 或相似的远程不能用的接口时,值为 true,否则为 false。
scopeid IPv6 数字领域识别码(只有当 family 是 IPv6 时可用)。
cidr 以 CIDR 表示法分配的带有路由前缀的 IPv4 或 IPv6 地址。如果 netmask 参数不可用,则该属性是 null。

是 loopback 或相似的远程不能用的接口时,值为 true,否则为 false。
scopeid IPv6 数字领域识别码(只有当 family 是 IPv6 时可用)。
cidr 以 CIDR 表示法分配的带有路由前缀的 IPv4 或 IPv6 地址。如果 netmask 参数不可用,则该属性是 null。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nq7zZESz-1603468854560)(E:\凯文的前端博客\框架部分images\5.5png.png)]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值