欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

前端必會的nodejs知識工具模塊使用示例詳解

 更新時間:2022年10月14日 10:23:35   作者:暴走的比卡丘  
這篇文章主要為大家介紹了前端必會的nodejs知識工具模塊使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

Util

nodejs中有許多在框架中常用而我們又不知道的工具模塊,本文介紹下這幾個工具模塊,算是自己的一個知識回顧吧。

Node.js 的工具模塊

常用的判斷屬性,在util.types對象

  • isDate:判斷是否是日期格式的變量
  • isAnyArrayBuffer:判斷是否是buffer
  • isAsyncFunction:判斷函數(shù)是否是異步的
let util = require('util');
// types: 判斷變量/函數(shù)的一些類型
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: 將對象轉(zhuǎn)為字符串
  • isDeepStrictEqual:判斷兩個字符是否強相等,相當于===
  • deprecate:將函數(shù)包裝為棄用
// 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): 域名系統(tǒng)、
    • 組成:他是由解析器和域名服務器組成
    • 作用:域名解析,將域名轉(zhuǎn)換成IP地址,將IP地址轉(zhuǎn)換成域名列表

nodejs中DNS支持域名和對應IP地址的相互解析,主要代碼如下:

let dns = require("dns");
//lookup(底層系統(tǒng)工具進行):將域名(比如 '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:實現(xiàn)給定的ip地址和端口號,解析為對應的域名
dns.lookupService("104.20.23.46", 80, (err, hostname, service) => {
  if (err) {
    console.log(err);
  }
  console.log("主機:" + hostname);
  console.log("協(xié)議:" + service);
});
//resolve:使用網(wǎng)絡(luò)域名系統(tǒng)
dns.resolve("nodejs.org", (err, address) => {
  if (err) {
    return;
  }
  console.log('resolve address: ', address);
});
// reverse:反向解析 IP 地址,指向該 IP 地址的域名數(shù)組。
const ip = "192.30.252.130";
dns.reverse(ip, function (err, hostnames) {
  if (!err) {
    console.log(ip + "IP綁定的語言數(shù)組為:" + hostnames);
  } else {
    console.log(err);
  }
});
// 返回當前正在使用的ip地址
const servers = dns.getServers();
console.log("current server ip address: ", servers);

OS

Node.js OS 模塊提供了一些基本系統(tǒng)操作函數(shù)

常用的方法和屬性

  • networkInterfaces獲取網(wǎng)絡(luò)信息
  • cpus:獲取系統(tǒng)的CPU內(nèi)核細膩,返回個數(shù)組
  • totalmem:系統(tǒng)總共內(nèi)存容量
  • freemem:系統(tǒng)空余內(nèi)存變量
  • hostname:系統(tǒng)主機名
  • version: 系統(tǒng)內(nèi)核版本的字符串
    const os =require('os');
    console.log('系統(tǒng)所有內(nèi)存變量為(單位M):',os.totalmem()/1024/1024);
    console.log('系統(tǒng)空余內(nèi)存變量為(單位M):',os.freemem()/1024/1024);
    console.log('系統(tǒng)主機名:',os.hostname());
    console.log('系統(tǒng)主機內(nèi)核版本:',os.version());
  • platform: 主機操作系統(tǒng)平攤
  • type: 主機的操作系統(tǒng)平臺名稱,可能的值為'aix'、'darwin'、'freebsd'、'linux'、'openbsd'、'sunos'、以及 'win32'。
  • uptime: 操作系統(tǒng)正常運行時間
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參數(shù)解析為絕對路徑
const r1 = path.resolve(__dirname,'../');
console.log('r1: ', r1);
// join參數(shù)拼接為一個路徑
const j1 = path.join(r1,'http/app.js')
console.log('j1: ', j1);
// path.relative(from, to)用于將絕對路徑轉(zhuǎn)為相對路徑,返回從 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);

總結(jié)

nodejs中的util path os dns是我們開發(fā)web服務會常用的幾個模塊,再次做一了解很有必要。

以上就是前端必會的nodejs知識工具模塊使用示例詳解的詳細內(nèi)容,更多關(guān)于前端nodejs工具模塊的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評論