os -- 模块提供了与操作系统相关的实用方法和属性。 可以使用以下方式访问它:const os = require('os');
os.EOL行尾标记换行符 windows 上为(\r\n) POSIX 上是 (\n)os.arch()返回为其编译 Node.js 二进制文件的操作系统 CPU 架构返回值armarm64ia32mipsmipselppcppc64s390s390xx32x64os.cpus()返回包含有关每个逻辑 CPU 内核的信息的对象数组。os.cpus().length可以获得核数
[{
model: '11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz',
speed: 2419, // 单位M
times: {
user: 1143859, // 在用户模式下花费的毫秒数
nice: 0, // 在良好模式下花费的毫秒数 (只有POSIX上 为有效值)
sys: 1260828, // 在系统模式下花费的毫秒数
idle: 127359062, // 在系统模式下花费的毫秒数
irq: 301093 // 在中断请求下花费的毫秒数
}...]
os.freemen()整数形式返回空闲系统的内存量 单位字节 转为gos.freemen()/ 2 ** (10 * 3)os.homedir()返回当前主目录下的字符串路径 在 POSIX 上,它使用$HOME环境变量(如果已定义)。 否则,它使用有效的 UID 来查找用户的主目录。
在 Windows 上,它使用 USERPROFILE 环境变量(如果已定义)。 否则,它使用当前用户的配置文件目录的路径。
os.hostname返回主机名os.tmpdir()返回操作系统默认的临时目录
path 用于处理文件 和目录 路径的实用工具(const path = require('path'))
path.basename('C:\temp\myfile.html')
- windows上 返回myfile.html
- POSIX上 返回C:\temp\myfile.html
- 当使用windows路径的时候想要 任何操作系统都一致的话可以使用
path.win32.basename - 当使用POSIX路径的时候想要 任何操作系统都一致的话可以使用
path.posix.basename path.basename('C:\temp\myfile.html','.html')可以接受第二个参数 可选的文件扩展名 只有在一致情况下 才会忽略,上面 返回myfile而如果是path.win32.basename('C:\temp\myfile.HTML','.html')在windows上不分大小写,指的是一个文件,但是path将其视为有大小写的后缀,此时返回myfile.HTML
path.sep当前系统下的分隔符 windows\POSIX上/(内部分割)path.delimiter当前系统下的路径界定符 windows;POSIX上:(内部分割)path.dirname('C:\temp\myfile.html')返回路径下的目录 返回C:\temppath.extname('C:\temp\myfile.html')返回当前文件后缀 返回.htmlpath.join([...paths])参数为路径片段- eg: path.join('/foo', 'bar', 'baz/asdf', 'quux', '..') 返回 /foo/bar/baz/asdf
path.relative(from,to)to路径相对于from的相对路径- eg:
- POSIX: 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.resolve([...paths])参数为路径 或者路径片段序列 如果不传参数 ,返回前工作目录的绝对路径,如果代码片段未组成绝对路径,则会加上当前工作目录的绝对路径;给定的路径序列从右到左处理,每个后续的path会被追加到前面,直到构建绝对路径;例如;path.resolve('/foo', '/bar', 'baz')将返回/bar/baz因为'/bar' + '/' + 'baz'是绝对路径baz不是绝对路径;如果path.resolve('baz', 'foo')第一个参数为baz则会自动加上当前工作目录,如果当前工作目录是home则返回home/baz/foo/bar
url 网址 提供用于网址处理和解析的实用工具。 可以使用以下方式访问它: const url = require("url")
const myUrl = new url.URL("https://mbd.baidu.com:8080/newspage?n_type=-1&p_from=-1")
// 或者 const myUrl = `url.parse(urlString[, parseQueryString[, slashesDenoteHost]])`
URL {
href: 'https://mbd.baidu.com:8080/newspage?n_type=-1&p_from=-1',
origin: 'https://mbd.baidu.com:8080',
protocol: 'https:',
username: '',
password: '',
host: 'mbd.baidu.com:8080',
hostname: 'mbd.baidu.com',
port: '8080',
pathname: '/newspage',
search: '?n_type=-1&p_from=-1',
searchParams: URLSearchParams { 'n_type' => '-1', 'p_from' => '-1' }, // 类似map结构,但不是map
hash: ''
}
可以直接 url.format(myUrl) 将对象地址转为字符串地址
可以直接 new url.URLSearchParams('n_type=-1&p_from=-1') 获取参数对象
判断参数是否有存在用has方法url.searchParams.has('a') 返回布尔
获取值 用geturl.searchParams.get('a')
util 工具包 模块支持 Node.js 内部 API 的需求。 许多实用工具对应用程序和模块开发者也很有用。 要访问它:const util = require('util');
util.callbackify(original) 高级函数 将promise形式转为callback形式
采用 async 函数(或返回 Promise 的函数)并返回遵循错误优先回调风格的函数,即将 (err, value) => ... 回调作为最后一个参数。 在回调中,第一个参数将是拒绝原因(如果 Promise 已解决,则为 null),第二个参数将是已解决的值
const util = require('util')
async function fn(timer = 1000) {
await setTimeout(() => {
},timer)
return 'hello world' + timer;
}
const callbackFunction = util.callbackify(fn);
callbackFunction(500,(err,value) => {
console.log(value)
}
// 打印 hello world500
util.promisify(original) 将回调函数转为promise
const util = require('util');
const fs = require('fs');
const stat = util.promisify(fs.stat);
stat('.').then((stats) => {
// 使用 `stats` 做些事情
}).catch((error) => {
// 处理错误。
});
util.inherits(constructor, superConstructor)
不鼓励使用 util.inherits()。 请使用 ES6 class 和 extends 关键字来获得语言级别的继承支持