当前位置: 首页 > 工具软件 > node-abc > 使用案例 >

【Node】Node核心模块

隗高旻
2023-12-01


os模块

os模块提供一些操作系统相关的实用方法。

导入模块:

const os = require('os');

相关方法:

const os = require('os');
console.log('操作系统类型:' + os.type());
console.log('操作系统平台: ' + os.platform());
console.log('系统内存总量:' + os.totalmem() + " 字节");
console.log('空闲内存量:' + os.freemem() + " 字节");
console.log('CPU信息:');
console.log( os.cpus());
/* 输出的内容:
操作系统类型:Windows_NT
操作系统平台: win32
系统内存总量:8394625024 字节
空闲内存量:2223927296 字节
CPU信息:
[
  {
    model: 'Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz',
    speed: 1800,
    times: {
      user: 1434140,
      nice: 0,
      sys: 1499906,
      idle: 23970421,
      irq: 217359
    }
  },
  {
    model: 'Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz',
    speed: 1800,
    times: { user: 680203, nice: 0, sys: 812812, idle: 25410812, irq: 16171 }
  },
  {
    model: 'Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz',
    speed: 1800,
    times: {
      user: 2487218,
      nice: 0,
      sys: 1683328,
      idle: 22733265,
      irq: 35000
    }
  },
  {
    model: 'Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz',
    speed: 1800,
    times: { user: 1044765, nice: 0, sys: 928296, idle: 24930750, irq: 14171 }
  },
  {
    model: 'Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz',
    speed: 1800,
    times: {
      user: 1513406,
      nice: 0,
      sys: 1245687,
      idle: 24144718,
      irq: 27218
    }
  },
  {
    model: 'Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz',
    speed: 1800,
    times: { user: 796546, nice: 0, sys: 811687, idle: 25295578, irq: 15187 }
  },
  {
    model: 'Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz',
    speed: 1800,
    times: {
      user: 1450843,
      nice: 0,
      sys: 1289453,
      idle: 24163515,
      irq: 19906
    }
  },
  {
    model: 'Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz',
    speed: 1800,
    times: {
      user: 1196015,
      nice: 0,
      sys: 1010640,
      idle: 24697156,
      irq: 21734
    }
  }
]
*/

util模块

util模块主要用于支持Node.js内部API的需求。
提供的大部分实用工具可用于应用程序与模块开发

导入模块:

const util = require('util');
  • util.inspect(object[, options])
    返回对象的字符串表示,主要用于调试。
const util = require('util');
console.log(util.inspect(util, { showHidden: true, depth: null }));
  • util.format(format[, ...args]):返回一个格式化后的字符串。
// 返回: '蓝天白云:%s'
util.format('%s:%s', '蓝天白云');

// 返回'环境优美:绿水青山 蓝天白云'
util.format('%s:%s', '环境优美', '绿水青山', '蓝天白云'); 

// 返回'1 2 3'
util.format(1, 2, 3); 

path模块

提供了一些工具方法,用于处理文件与目录的路径。
导入模块:

const path = require('path');
  • path模块最大的用处是解决多平台目录路径问题。
  • path模块默认会根据Node.js应用程序运行的操作系统的不同而变化。
  • 要想在任何操作系统上处理Windows文件路径时获得一致的结果,可以使用path模块的path.win32属性。
  • Node.js在Windows系统上遵循单驱动器工作目录的理念。

属性:

  • path.delimiter:提供平台特定的路径分隔符,Windows上是";",POSIX上是":"。
  • path.sep:提供平台特定的路径分段分隔符。Windows上是"\",POSIX上是"/"。

方法:

  • path.normalize(path):对路径进行规范化,并解析“…”和“.” 。
  • path.dirname(path):返回路径的目录名,类似于UNIX中的dirname命令。
  • path.basename(path[, ext]):返回路径中的最后一部分,可选的ext参数表示文件扩展名。
  • path.extname(path):返回路径中文件的后缀名,即路径中最后一个“.”之后的部分。
  • path.parse(path):返回完整路径的一个对象。
  • path.format(pathObject):从一个对象表示的路径返回一个字符串表示的路径。
  • path.resolve([...paths]):将一个路径或路径片段的序列解析为一个绝对路径。
  • path.relative(from, to):返回从参数from到to的相对路径(基于当前工作目录)。
  • path.join([...paths]):使用平台特定的分隔符将路径片段序列连接到一起,并规范生成的路径。
  • path.isAbsolute(path):判定路径是否为一个绝对路径。
const path=require('path');
console.log('Windows下的目录分隔符: '+path.delimiter);
console.log('Windows的路径分段分隔符: '+path.sep);

const url='E:\\Web前端\\input.txt';
console.log('路径的目录名是:'+path.dirname(url));
console.log('路径中最后一部分:'+path.basename(url));
console.log('文件名的后缀:'+path.extname(url));
console.log('完整路径的对象:'+path.parse(url));

var obj=path.parse(url);
console.log('路径对象转换为字符串:'+path.format(obj));
var s1='D:';
var s2='mydir';
var s3='logo.jpg';

console.log('路径的连接:'+path.join(s1,s2,s3));
Windows下的目录分隔符: ;
Windows的路径分段分隔符: \
路径的目录名是:E:\Web前端
路径中最后一部分:input.txt
文件名的后缀:.txt
完整路径的对象:[object Object]
路径对象转换为字符串:E:\Web前端\input.txt
路径的连接:D:\mydir\logo.jpg

url模块

url模块提供了一些实用方法,用于URL处理与解析。

导入模块:

const url = require('url');

url的两套API:

1、Node.js特有的API(传统的URL API)主要用于兼容已有应用程序。

  • url地址中的符号:
    • ?:请求地址与请求参数之间的分隔符
    • &:参数之间的分隔符
const url = require('url');
const myUrl = url.parse('https://localhost:8080/index.html?username=张三&password=1234')
console.log(myUrl);
/*输出:
Url {
  protocol: 'https:',
  slashes: true,
  auth: null,
  host: 'localhost:8080',
  port: '8080',
  hostname: 'localhost',
  hash: null,
  search: '?username=张三&password=1234',
  query: 'username=张三&password=1234',
  pathname: '/index.html',
  path: '/index.html?username=张三&password=1234',
  href: 'https://localhost:8080/index.html?username=张三&password=1234'
}
*/

console.log(myUrl.query);
//输出:username=张三&password=1234

2、新的应用程序应使用WHATWG API。

const {URL} = require('url');
const myUrl = new URL('https://localhost:8080/index.html?username=张三&password=1234')
  • WHATWG API的URL类提供的方法和属性
    • URL类根据WHATWG URL标准实现。首先使用构造方法new URL(input[, base])创建URL对象
    • 然后使用URL类提供的属性和方法来进行操作。
    • 主要属性
      • url.protocol:获取及设置URL的协议(protocol)部分。
      • url.host:获取及设置URL的主机(host)部分,包括端口。
      • url.hostname:获取及设置URL的主机名(hostname)部分。
      • url.port:获取及设置URL的端口(port)部分。
      • url.pathname:获取及设置URL的路径(path)部分。
      • url.search:获取及设置URL的序列化查询(query)部分。
      • url.hash#:获取及设置URL的hash部分。例如http://example.org/foo#bar。
      • url.href:获取及设置序列化的URL,返回值与url.toString和url.toJSON的返回值相同。
    • 主要方法
      • url.toString():返回序列化的URL
      • url.toJSON():返回序列化的URL,URL对象使用JSON.stringify()序列化时将自动调用该方法

querystring模块

提供一些实用方法用于解析与格式化URL查询字符串
导入模块:

const querystring = require('querystring');
  • querystring.parse(str[, sep[, eq[, options]]]) 将一个URL查询字符串解析成一个键值对的集合(相当于反序列化)。
示例:解析查询字符串foo=bar&abc=xyz&abc=123的结果如下:
{
  foo: 'bar',
  abc: ['xyz', '123']
}
  • querystring.stringify(obj[, sep[, eq[, options]]])
    将一个对象转换成URL查询字符串,是querystring.parse的逆运算。参数obj是要序列化成URL查询字符串的对象。
示例:
调用:querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });
返回:“foo=bar&baz=qux&baz=quux&corge=”
  • querystring.unescape(str) 用于对字符串进行解码,通常提供给querystring.parse()使用。

  • querystring.escape(str) 用于对字符串进行URL编码,主要提供给querystring.stringify()使用。

 类似资料: