Java教程

Node常用基本内置模块

本文主要是介绍Node常用基本内置模块,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、OS模块  查看操作系统信息

const os = require("os");
console.log(os);  
console.log(os.EOL);    //换行符
console.log(os.cpus().length); //内核   8核
console.log(os.freemem()/2**30);  //剩余内存  多少kb
console.log(os.homedir());  //用户目录    C:\Users\Lenovo
console.log(os.hostname());  //主机名    DESKTOP-QILT1G7
console.log(os.tmpdir());  //文件目录  C:\Users\Lenovo\AppData\Local\Temp

二、path模块  用于处理文件和目录的路径

const path = require("path");
console.log(path.basename("a/b/c.html")) //文件名
console.log(path.delimiter)  //操作系统路径分隔符 一个路径与另一个路径
console.log(__dirname); //模块路径
console.log(path.dirname(__filename))    //模块路径
console.log(path.extname(__filename))  //后缀名
console.log(path.join(__filename));   //加入路径
console.log(path.normalize('eqweq/eqwe/eqweq/eqw'))   //转换成正常路径
console.log(path.relative("a/b/c/c.html","a/b/d/d.html"));  //将后面的路径转换为前面路径的相对路径 ../../d/d.html
console.log(path.resolve(__dirname,"./OS.js"));  //路径拼接

1.pathname

  • path <string>
  • ext <string> 可选的文件扩展名。
  • 返回: <string>

path.basename() 方法会返回 path 的最后一部分,类似于 Unix 的 basename 命令。 尾部的目录分隔符会被忽略,参见 path.sep

path.basename('/目录1/目录2/文件.html');
// 返回: '文件.html'

path.basename('/目录1/目录2/文件.html', '.html');
// 返回: '文件'

2.dirname

  • path <string>
  • 返回: <string>

path.dirname() 方法会返回 path 的目录名,类似于 Unix 的 dirname 命令。 尾部的目录分隔符会被忽略,参见 path.sep

path.dirname('/目录1/目录2/目录3');
// 返回: '/目录1/目录2'

3.delimiter

提供平台特定的路径定界符:

  • ; 用于 Windows
  • : 用于 POSIX

例如,在 POSIX 上:

console.log(process.env.PATH);
// 打印: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin'

process.env.PATH.split(path.delimiter);
// 返回: ['/usr/bin', '/bin', '/usr/sbin', '/sbin', '/usr/local/bin']

在 Windows 上:

console.log(process.env.PATH);
// 打印: 'C:\Windows\system32;C:\Windows;C:\Program Files\node\'

process.env.PATH.split(path.delimiter);
// 返回: ['C:\\Windows\\system32', 'C:\\Windows', 'C:\\Program Files\\node\\']

三、URL模块 模块用于处理与解析 URL 

const url = require('url');

使用 WHATWG 的 API 解析 URL 字符串:转为url对象

const myURL =new URL('https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash');

使用传统的 API 解析 URL 字符串:转为url对象

const url = require('url');
const myURL =url.parse('https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash');

url对象

URL {
  href: 'https://user:pass@sub.host.com:8080/p/a/t/h?query=string#hash',
  origin: 'https://sub.host.com:8080',
  protocol: 'https:',
  username: 'user',
  password: 'pass',
  host: 'sub.host.com:8080',
  hostname: 'sub.host.com',
  port: '8080',
  pathname: '/p/a/t/h',
  search: '?query=string',
  searchParams: URLSearchParams { 'query' => 'string' },
  hash: '#hash'
}

四、Util 模块

node中的回调模式

(err,data)=>{}  err错误,data回调数据

1.callbackify(promise)  promise转回调

const util = require("util");

async function delay(duration = 1000) {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve(duration);
    }, duration);
  });
}

const delayCallback = util.callbackify(delay); //将promise转为回调

delayCallback(1500, (err, d) => {
  console.log(d);
});

2.promisify(callback)   callback转promise

function delayCallBack(duration, callback) {
  setTimeout(() => {
    callback(null, duration);
  }, duration);
}

const delay = util.promisify(delayCallBack);//将回调转为promise
(async () => {
  const r = await delay(500);
  console.log(r);
})();

3.isDeepScriptEqual(obj1,,obj2)  判断对象是否相等

const obj1 = {
  a: 1,
  b: {
    c: 3,
    d: {
      e: 5
    }
  }
};

const obj2 = {
  a: 1,
  b: {
    c: 3,
    d: {
      e: 5,
      g: 6
    }
  }
};
const obj3 = {
  a: 1,
  b: {
    c: 3,
    d: {
      e: 5
    }
  }
};

console.log(util.isDeepStrictEqual(obj1, obj2)); //false
console.log(util.isDeepStrictEqual(obj1, obj3)); //true

 

这篇关于Node常用基本内置模块的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!