“Node.js:工具模块”的版本间差异
跳到导航
跳到搜索
(建立内容为“category:Node.js == 关于 == 在 Node.js 模块库中有很多好用的模块。 几种常用模块的使用: # '''OS''' 模块:提供基本的系统…”的新页面) |
|||
第102行: | 第102行: | ||
</syntaxhighlight>''' | </syntaxhighlight>''' | ||
=== 方法 === | |||
{| class="wikitable" | {| class="wikitable" | ||
! 命令 !! 描述 | ! 命令 !! 描述 | ||
|- | |- | ||
| | | path.'''normalize'''(p) || 规范化路径,注意'..' 和 '.'。 | ||
| | |- | ||
| path.'''join'''([path1][, path2][, ...]) | |||
| 用于连接路径。 | |||
该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是"/",Windows系统是"\"。 | |||
|- | |- | ||
| | | path.'''resolve'''([from ...], to) | ||
| | | '''将 to 参数解析为绝对路径''',给定的路径的序列是从右往左被处理的,后面每个 path 被依次解析,直到构造完成一个绝对路径。 | ||
例如,给定的路径片段的序列为:/foo、/bar、baz,则调用 path.resolve('/foo', '/bar', 'baz') 会返回 /bar/baz。 | |||
<syntaxhighlight lang="bash" highlight=""> | |||
path.resolve('/foo/bar', './baz'); | |||
// 返回: '/foo/bar/baz' | |||
path.resolve('/foo/bar', '/tmp/file/'); | |||
// 返回: '/tmp/file' | |||
path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif'); | |||
// 如果当前工作目录为 /home/myself/node, | |||
// 则返回 '/home/myself/node/wwwroot/static_files/gif/image.gif' | |||
</syntaxhighlight> | |||
|- | |||
| path.'''isAbsolute'''(path) || '''判断参数 path 是否是绝对路径'''。 | |||
|- | |||
| path.'''relative'''(from, to) | |||
| 用于'''将绝对路径转为相对路径''',返回从 from 到 to 的相对路径(基于当前工作目录)。 | |||
在 Linux 上: | |||
<syntaxhighlight lang="bash" highlight=""> | |||
path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb'); | |||
// 返回: '../../impl/bbb' | |||
</syntaxhighlight> | |||
在 Windows 上: | |||
<syntaxhighlight lang="bash" highlight=""> | |||
path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb'); | |||
// 返回: '..\\..\\impl\\bbb' | |||
</syntaxhighlight> | |||
|- | |||
| path.dirname(p) || 返回路径中代表文件夹的部分,同 Unix 的dirname 命令类似。 | |||
|- | |||
| path.basename(p[, ext]) || 返回路径中的最后一部分。同 Unix 命令 bashname 类似。 | |||
|- | |||
| path.extname(p) | |||
| 返回路径中文件的后缀名,即路径中最后一个'.'之后的部分。 | |||
* 如果一个路径中并不包含'.'或该路径只包含一个'.' 且这个'.'为路径的第一个字符,则此命令返回空字符串。 | |||
|- | |- | ||
| | | path.parse(pathString) || 返回路径字符串的对象。 | ||
| | |||
|- | |- | ||
| | | path.format(pathObject) || 从对象中返回路径字符串,和 path.parse 相反。 | ||
| | |||
|} | |} | ||
=== 属性 === | |||
{| class="wikitable" | {| class="wikitable" | ||
! 命令 !! 描述 | ! 命令 !! 描述 | ||
|- | |- | ||
| | | path.sep || 平台的文件路径分隔符,'\\' 或 '/'。 | ||
| | |||
|- | |- | ||
| | | path.delimiter || 平台的分隔符, ; or ':'. | ||
| | |- | ||
| path.posix || 提供上述 path 的方法,不过总是以 posix 兼容的方式交互。 | |||
|- | |||
| path.win32 || 提供上述 path 的方法,不过总是以 win32 兼容的方式交互。 | |||
|} | |} | ||
=== 示例 === | |||
创建 main.js 文件: | |||
<syntaxhighlight lang="bash" highlight=""> | |||
var path = require("path"); | |||
// 格式化路径 | |||
console.log('normalization : ' + path.normalize('/test/test1//2slashes/1slash/tab/..')); | |||
// 连接路径 | |||
console.log('joint path : ' + path.join('/test', 'test1', '2slashes/1slash', 'tab', '..')); | |||
// 转换为绝对路径 | |||
console.log('resolve : ' + path.resolve('main.js')); | |||
// 路径中文件的后缀名 | |||
console.log('ext name : ' + path.extname('main.js')); | |||
</syntaxhighlight> | |||
代码执行结果如下: | |||
<syntaxhighlight lang="bash" highlight=""> | |||
$ node main.js | |||
normalization : /test/test1/2slashes/1slash | |||
joint path : /test/test1/2slashes/1slash | |||
resolve : /web/com/1427176256_27423/main.js | |||
ext name : .js | |||
</syntaxhighlight> | |||
== Net 模块 == | == Net 模块 == |
2021年5月31日 (一) 02:08的版本
关于
在 Node.js 模块库中有很多好用的模块。
几种常用模块的使用:
- OS 模块:提供基本的系统操作函数。
- Path 模块:提供了处理和转换文件路径的工具。
- Net 模块:用于底层的网络通信。提供了服务端和客户端的的操作。
- DNS 模块:用于解析域名。
- Domain 模块:简化异步代码的异常处理,可以捕捉处理try catch无法捕捉的。
OS 模块
Node.js os 模块提供了一些基本的系统操作函数。
可以通过以下方式引入该模块:
var os = require("os")
方法
命令 | 描述 |
---|---|
os.tmpdir() | 返回操作系统的默认临时文件夹。 |
os.endianness() | 返回 CPU 的字节序,可能的是 "BE" 或 "LE"。 |
os.hostname() | 返回操作系统的主机名。 |
os.type() | 返回操作系统名 |
os.platform() | 返回编译时的操作系统名 |
os.arch() | 返回操作系统 CPU 架构,可能的值有 "x64"、"arm" 和 "ia32"。 |
os.release() | 返回操作系统的发行版本。 |
os.uptime() | 返回操作系统运行的时间,以秒为单位。 |
os.loadavg() | 返回一个包含 1、5、15 分钟平均负载的数组。 |
os.totalmem() | 返回系统内存总量,单位为字节。 |
os.freemem() | 返回操作系统空闲内存量,单位是字节。 |
os.cpus() | 返回一个对象数组。
包含所安装的每个 CPU/内核的信息:
|
os.networkInterfaces() | 获得网络接口列表。 |
属性
命令 | 描述 |
---|---|
os.EOL | 定义了操作系统的行尾符的常量。 |
示例
创建 main.js 文件:
var os = require("os");
// CPU 的字节序
console.log('endianness : ' + os.endianness());
// 操作系统名
console.log('type : ' + os.type());
// 操作系统名
console.log('platform : ' + os.platform());
// 系统内存总量
console.log('total memory : ' + os.totalmem() + " bytes.");
// 操作系统空闲内存量
console.log('free memory : ' + os.freemem() + " bytes.");
代码执行结果如下:
$ node main.js
endianness : LE
type : Linux
platform : linux
total memory : 25103400960 bytes.
free memory : 20676710400 bytes.
Path 模块
Node.js path 模块提供了一些用于处理文件路径的小工具。
可以通过以下方式引入该模块:
var path = require("path")
方法
命令 | 描述 |
---|---|
path.normalize(p) | 规范化路径,注意'..' 和 '.'。 |
path.join([path1][, path2][, ...]) | 用于连接路径。
该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是"/",Windows系统是"\"。 |
path.resolve([from ...], to) | 将 to 参数解析为绝对路径,给定的路径的序列是从右往左被处理的,后面每个 path 被依次解析,直到构造完成一个绝对路径。
例如,给定的路径片段的序列为:/foo、/bar、baz,则调用 path.resolve('/foo', '/bar', 'baz') 会返回 /bar/baz。 path.resolve('/foo/bar', './baz');
// 返回: '/foo/bar/baz'
path.resolve('/foo/bar', '/tmp/file/');
// 返回: '/tmp/file'
path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');
// 如果当前工作目录为 /home/myself/node,
// 则返回 '/home/myself/node/wwwroot/static_files/gif/image.gif'
|
path.isAbsolute(path) | 判断参数 path 是否是绝对路径。 |
path.relative(from, to) | 用于将绝对路径转为相对路径,返回从 from 到 to 的相对路径(基于当前工作目录)。
在 Linux 上: path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb');
// 返回: '../../impl/bbb'
在 Windows 上: path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb');
// 返回: '..\\..\\impl\\bbb'
|
path.dirname(p) | 返回路径中代表文件夹的部分,同 Unix 的dirname 命令类似。 |
path.basename(p[, ext]) | 返回路径中的最后一部分。同 Unix 命令 bashname 类似。 |
path.extname(p) | 返回路径中文件的后缀名,即路径中最后一个'.'之后的部分。
|
path.parse(pathString) | 返回路径字符串的对象。 |
path.format(pathObject) | 从对象中返回路径字符串,和 path.parse 相反。 |
属性
命令 | 描述 |
---|---|
path.sep | 平台的文件路径分隔符,'\\' 或 '/'。 |
path.delimiter | 平台的分隔符, ; or ':'. |
path.posix | 提供上述 path 的方法,不过总是以 posix 兼容的方式交互。 |
path.win32 | 提供上述 path 的方法,不过总是以 win32 兼容的方式交互。 |
示例
创建 main.js 文件:
var path = require("path");
// 格式化路径
console.log('normalization : ' + path.normalize('/test/test1//2slashes/1slash/tab/..'));
// 连接路径
console.log('joint path : ' + path.join('/test', 'test1', '2slashes/1slash', 'tab', '..'));
// 转换为绝对路径
console.log('resolve : ' + path.resolve('main.js'));
// 路径中文件的后缀名
console.log('ext name : ' + path.extname('main.js'));
代码执行结果如下:
$ node main.js
normalization : /test/test1/2slashes/1slash
joint path : /test/test1/2slashes/1slash
resolve : /web/com/1427176256_27423/main.js
ext name : .js
Net 模块
命令 | 描述 |
---|---|
DNS 模块
命令 | 描述 |
---|---|
Domain 模块
命令 | 描述 |
---|---|