nodejs中有许多在结构中常用而咱们又不知道的东西模块,本文介绍下这几个东西模块,算是自己的一个知识回忆吧。
Util
Node.js 的东西模块
常用的判别特点,在util.types目标
- isDate:判别是否是日期格式的变量
- isAnyArrayBuffer:判别是否是buffer
- isAsyncFunction:判别函数是否是异步的
let util = require('util');
// types: 判别变量/函数的一些类型
const {isAnyArrayBuffer,isAsyncFunction,isDate} = util.types
// isDate
const is_date = isDate(new Date())
const is_date2 = isDate('2022-09-01')
console.log('is_date2: ', is_date2);
console.log('is_date: ', is_date);
// isAnyArrayBuffer
const isBuff1 = isAnyArrayBuffer('buffer')
console.log('isBuff1: ', isBuff1);
const isBuff2 = isAnyArrayBuffer(new ArrayBuffer(14))
console.log('isBuff2: ', isBuff2);
// isAsyncFunction
const f2 = async function function2(){}
const f1 = function function1(){}
const isAsyncFunc = isAsyncFunction(f1)
const isAsyncFunc2 = isAsyncFunction(f2)
console.log('isAsyncFunc2: ', isAsyncFunc2);
console.log('isAsyncFunc: ', isAsyncFunc);
常用的办法和特点
- format:格式化字符串
- inspect: 将目标转为字符串
- isDeepStrictEqual:判别两个字符是否强持平,相当于===
- deprecate:将函数包装为弃用
// inspect
const obj = {name:'inspect',date:'2022-09-01'}
const str = util.inspect(obj)
console.log('str: ', str);
// 格式化字符串util.format(arg1,arg2,arg3,arg4)
const str2 = util.format('%s:%s','12','34','56')
console.log('str2: ', str2);
// deprecate
util.deprecate(()=>{
console.log('this is a deprecate func')
})
// isDeepStrictEqual
const v1 = '2'
const v2 = 2;
const isEqual = util.isDeepStrictEqual(v1,v2)
console.log('isEqual: ', isEqual);
console.log(v1 == v2);
console.log(v1 === v2);
DNS
Node.js DNS 模块用于解析域名
- DNS(Domain Name System): 域名体系、
- 组成:他是由解析器和域名服务器组成
- 作用:域名解析,将域名转换成IP地址,将IP地址转换成域名列表
- nodejs中DNS支撑域名和对应IP地址的彼此解析,首要代码如下:
let dns = require("dns");
//lookup(底层体系东西进行):将域名(比方 'runoob.com')解析为榜首条找到的记载 A (IPV4)或 AAAA(IPV6)。
const hostname = "www.runoob.com";
dns.lookup(hostname, function (err, address, famliy) {
if (!err) {
console.log(hostname + "绑定的IP地址为:" + address);
}
});
//lookupService:完成给定的ip地址和端口号,解析为对应的域名
dns.lookupService("104.20.23.46", 80, (err, hostname, service) => {
if (err) {
console.log(err);
}
console.log("主机:" + hostname);
console.log("协议:" + service);
});
//resolve:运用网络域名体系
dns.resolve("nodejs.org", (err, address) => {
if (err) {
return;
}
console.log('resolve address: ', address);
});
// reverse:反向解析 IP 地址,指向该 IP 地址的域名数组。
const ip = "192.30.252.130";
dns.reverse(ip, function (err, hostnames) {
if (!err) {
console.log(ip + "IP绑定的语言数组为:" + hostnames);
} else {
console.log(err);
}
});
// 回来当前正在运用的ip地址
const servers = dns.getServers();
console.log("current server ip address: ", servers);
OS
Node.js OS 模块提供了一些根本体系操作函数
常用的办法和特点
- networkInterfaces获取网络信息
- cpus:获取体系的CPU内核细腻,回来个数组
- totalmem:体系总共内存容量
- freemem:体系空余内存变量
- hostname:体系主机名
- version: 体系内核版本的字符串
const os =require('os');
console.log('体系一切内存变量为(单位M):',os.totalmem()/1024/1024);
console.log('体系空余内存变量为(单位M):',os.freemem()/1024/1024);
console.log('体系主机名:',os.hostname());
console.log('体系主机内核版本:',os.version());
- platform: 主机操作体系平摊
- type: 主机的操作体系渠道名称,或许的值为’aix’、’darwin’、’freebsd’、’linux’、’openbsd’、’sunos’、以及 ‘win32’。
- uptime: 操作体系正常运转时刻
console.log('主机的渠道:',os.platform());
console.log('主机的渠道名称:',os.type());
console.log('主机的x正常运转时刻:',os.uptime()/3600/24);
Path
nodejs用来处理文件途径的东西模块,首要处理绝对途径,相对途径
常用的办法和特点
const path = require('path')
//特点- 渠道途径的分隔符
const sep =path.sep;
console.log('sep: ', sep);
//特点- 分隔符获取
const delimiter = path.delimiter;
console.log('delimiter: ', delimiter);
//特点- 提供上述 path 的办法,不过总是以 win32 兼容的方法交互。
const win32 = path.win32;
// console.log('win32: ', win32);
// resolve参数解析为绝对途径
const r1 = path.resolve(__dirname,'../');
console.log('r1: ', r1);
// join参数拼接为一个途径
const j1 = path.join(r1,'http/app.js')
console.log('j1: ', j1);
// path.relative(from, to)用于将绝对途径转为相对途径,回来从 from 到 to 的相对途径(根据当前工作目录)
const r2 = path.relative(j1,'http/app.js')
console.log('rl: ', r2);
// isAbsolute判别是否是绝对途径
const isAbs1 = path.isAbsolute(r2)
console.log('isAbs1: ', isAbs1);
const isAbs2 = path.isAbsolute(j1)
console.log('isAbs2: ', isAbs2);
// path.dirname(p):回来途径中代表文件夹的部分,同 Unix 的dirname 指令相似。
const dir = path.dirname(j1)
console.log('dir: ', dir);
// path.basename:回来途径中的最终一部分。同 Unix 指令 bashname 相似。
const basename = path.basename(j1)
console.log('basename: ', basename);
// path.extname(p): 回来途径中文件的后缀名,即途径中最终一个'.'之后(包含'.')的部分。假如一个途径中并不包含'.'或该途径只包含一个'.' 且这个'.'为途径的榜首个字符,则此指令回来空字符串。
const extname = path.extname(j1);
console.log('extname: ', extname);
// path.parse(pathString):回来途径字符串的目标,与path.format相反。
const pathObj = path.parse('D:\demo\demo\nodejs\http\app.js')
console.log('pathObj: ', pathObj);
// path.format(pathObject):从目标中回来途径字符串,和 path.parse 相反。
const pathStr = path.format(pathObj)
console.log('pathStr: ', pathStr);
总结
nodejs中的util path os dns是咱们开发web服务会常用的几个模块,再次做一了解很有必要。