Util

nodejs中有许多在框架中常用而我们又不知道的工具模块,本文介绍下这几个工具模块,算是自己的一个知识回顾吧。

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服务会常用的几个模块,再次做一了解很有必要。

以上就是前端必会的nodejs知识工具模块使用示例详解的详细内容,更多关于前端nodejs工具模块的资料请关注Devmax其它相关文章!

前端必会的nodejs知识工具模块使用示例详解的更多相关文章

  1. 前端实现背景虚化但内容清晰且自适应 的实例代码

    这篇文章主要介绍了前端实现背景虚化但内容清晰且自适应 的实例代码,需要的朋友可以参考下

  2. nodejs npm package.json中文文档

    这篇文章主要介绍了nodejs npm package.json中文文档,本文档中描述的很多行为都受npm-config(7)的影响,需要的朋友可以参考下

  3. 浅析Nodejs npm常用命令

    这篇文章主要介绍了浅析Nodejs npm常用命令的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

  4. nodejs 使用nodejs-websocket模块实现点对点实时通讯

    这篇文章主要介绍了nodejs 使用nodejs-websocket模块实现点对点实时通讯的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  5. nodeJs链接Mysql做增删改查的简单操作

    本篇文章主要介绍了nodeJs链接Mysql做增删改查的简单操作,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  6. Nodejs中使用captchapng模块生成图片验证码

    本篇文章主要介绍了Nodejs中使用captchapng模块实现图片验证码,非常具有实用价值,需要的朋友可以参考下

  7. nodejs 图片预览和上传的示例代码

    本篇文章主要介绍了nodejs 图片预览和上传的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  8. nodejs中函数的调用实例详解

    本文通过实例代码给大家介绍了nodejs函数的调用,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  9. NodeJS使用formidable实现文件上传

    这篇文章主要为大家详细介绍了NodeJS使用formidable实现文件上传的相关方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. Nodejs获取网络数据并生成Excel表格

    这篇文章主要为大家详细介绍了Nodejs获取网络数据并生成Excel表格的具体实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

随机推荐

  1. Error: Cannot find module ‘node:util‘问题解决

    控制台 安装 Vue-Cli 最后一步出现 Error: Cannot find module 'node:util' 问题解决方案1.问题C:\Windows\System32>cnpm install -g @vue/cli@4.0.3internal/modules/cjs/loader.js:638 throw err; &nbs

  2. yarn的安装和使用(全网最详细)

    一、yarn的简介:Yarn是facebook发布的一款取代npm的包管理工具。二、yarn的特点:速度超快。Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全。在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。超级可靠。使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。三、y

  3. 前端环境 本机可切换node多版本 问题源头是node使用的高版本

    前言投降投降 重头再来 重装环境 也就分分钟的事 偏要折腾 这下好了1天了 还没折腾出来问题的源头是node 使用的高版本 方案那就用 本机可切换多版本最终问题是因为nodejs的版本太高,导致的node-sass不兼容问题,我的node是v16.14.0的版本,项目中用了"node-sass": "^4.7.2"版本,无法匹配当前的node版本根据文章的提

  4. nodejs模块学习之connect解析

    这篇文章主要介绍了nodejs模块学习之connect解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  5. nodejs npm package.json中文文档

    这篇文章主要介绍了nodejs npm package.json中文文档,本文档中描述的很多行为都受npm-config(7)的影响,需要的朋友可以参考下

  6. 详解koa2学习中使用 async 、await、promise解决异步的问题

    这篇文章主要介绍了详解koa2学习中使用 async 、await、promise解决异步的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. Node.js编写爬虫的基本思路及抓取百度图片的实例分享

    这篇文章主要介绍了Node.js编写爬虫的基本思路及抓取百度图片的实例分享,其中作者提到了需要特别注意GBK转码的转码问题,需要的朋友可以参考下

  8. CentOS 8.2服务器上安装最新版Node.js的方法

    这篇文章主要介绍了CentOS 8.2服务器上安装最新版Node.js的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  9. node.js三个步骤实现一个服务器及Express包使用

    这篇文章主要介绍了node.js三个步骤实现一个服务器及Express包使用,文章通过新建一个文件展开全文内容,具有一定的参考价值,需要的小伙伴可以参考一下

  10. node下使用UglifyJS压缩合并JS文件的方法

    下面小编就为大家分享一篇node下使用UglifyJS压缩合并JS文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

返回
顶部