node学习—基本内置模块

    科技2022-07-13  116

    基本内置模块

    一、OS1.EOL2.arch3.cpus4.freeman5.homedir6.hostname7.tmpdir 二、path1.path.basename2.path.sep3.path.delimiter4.path.dirname(path)5.path.extname(path)6.path.join([...paths])7.path.normalize(path)8.path.relative(from, to)9.path.resolve([...paths]) 三、url四、util1.util.callbackify(original)2.util.promisify(original)3.util.inherits(constructor, superConstructor)4.util.isDeepStrictEqual(val1, val2)

    一、OS

    1.EOL

    string

    操作系统特定的行末标志。 在 POSIX 上是 \n。 在 Windows 上是 \r\n。

    2.arch

    string

    返回为其编译 Node.js 二进制文件的操作系统的 CPU 架构。 可能的值有:‘arm’、 ‘arm64’、 ‘ia32’、 ‘mips’、 ‘mipsel’、 ‘ppc’、 ‘ppc64’、 ‘s390’、 ‘s390x’、 ‘x32’ 和 ‘x64’。

    返回的值等价于 process.arch。

    3.cpus

    object

    返回一个对象数组,其中包含有关每个逻辑 CPU 内核的信息。

    const os = require("os"); console.log(os.cpus().length);//CPU核数

    4.freeman

    integer

    以整数的形式返回空闲的系统内存量(以字节为单位)。

    const os = require("os"); console.log(os.freemem() / 2 ** 30);

    5.homedir

    string>

    返回当前用户的主目录的字符串路径。

    6.hostname

    string

    以字符串的形式返回操作系统的主机名。

    7.tmpdir

    string

    以字符串的形式返回操作系统的默认临时文件目录。

    二、path

    1.path.basename

    path :stringext :string可选的文件扩展名。返回: string const path = require("path"); const basename = path.basename("F:\\Java\\day04.doc"); console.log(basename);

    const path = require("path"); const basename = path.basename("F:\\Java\\day04.doc",".doc"); console.log(basename);

    匹配不到则返回原文件名

    const path = require("path"); const basename = path.basename("F:\\Java\\day04.doc",".docx"); console.log(basename);

    2.path.sep

    stringWindows 上是 \。POSIX 上是 /。 提供平台特定的路径片段分隔符 const path = require("path"); console.log(path.sep);

    3.path.delimiter

    提供平台特定的路径定界符:; 用于 Windows: 用于 POSIX

    每个系统的路径定界符不一样,用path.delimiter来分割。

    const path = require("path"); console.log(process.env.PATH.split(path.delimiter));

    4.path.dirname(path)

    path: string返回: string返回 path 的目录名 const path = require("path"); const dir = path.dirname('a/b/c/d.doc'); console.log(dir);

    5.path.extname(path)

    path: string返回: string const path = require("path"); const ext = path.extname('a/b/c/d.js'); console.log(ext);

    如果没有后缀名则返回空字符串。

    6.path.join([…paths])

    …paths: string 路径片段的序列。返回: string将所有给定的 path 片段连接到一起(使用平台特定的分隔符作为定界符),然后规范化生成的路径。 const path = require("path"); const basePath = "a/b"; const fullpath = path.join(basePath, "../", "d.js"); console.log(fullpath);

    可以灵活运用。

    7.path.normalize(path)

    path: string返回: stringpath.normalize() 方法规范化给定的 path,解析 ‘…’ 和 ‘.’ 片段。

    8.path.relative(from, to)

    from: stringto: string返回: string根据当前工作目录返回 from 到 to 的相对路径。 const path = require("path"); const rel = path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb'); console.log(rel);

    9.path.resolve([…paths])

    …paths: string 路径或路径片段的序列。返回: stringpath.resolve() 方法会将路径或路径片段的序列解析为绝对路径。 const path = require("path"); const absPath = path.resolve(__dirname, "./a.js"); console.log(absPath);

    三、url

    const URL = require("url"); const url = new URL.URL("https://nodejs.org:80/a/b/c?t=3&u=5#abc"); console.log(url);

    console.log(url.searchParams.has("a")); console.log(url.searchParams.has("t")); console.log(url.searchParams.get("t"));

    const obj = { href: "https://nodejs.org:80/a/b/c?t=3&u=5#abc", origin: "https://nodejs.org:80", protocol: "https:", username: "", password: "", host: "nodejs.org:80", hostname: "nodejs.org", port: "80", pathname: "/a/b/c", search: "?t=3&u=5", hash: "#abc" }; const url = URL.format(obj); console.log(url);

    四、util

    1.util.callbackify(original)

    original: Function async 异步函数。返回: Function 传统回调函数。将 async 异步函数(或者一个返回值为 Promise 的函数)转换成遵循异常优先的回调风格的函数 const util = require("util"); async function delay(duration = 1000) { return new Promise(resolve => { setTimeout(() => { resolve(duration); }, duration); }); } delay(500).then(d=>{ console.log(d); })

    const delayCallback = util.callbackify(delay); delayCallback(500, (err, d) => { console.log(d); });

    2.util.promisify(original)

    original: Function返回: Function传入一个遵循常见的错误优先的回调风格的函数(即以 (err, value) => … 回调作为最后一个参数),并返回一个返回 promise 的版本。 function delayCallBack(duration, callback) { setTimeout(() => { callback(null, duration); }, duration); } const delay = util.promisify(delayCallBack); delay(500).then(d=>console.log(d));

    结合es7的async等

    (async () => { const r = await delay(500); console.log(r); })();

    3.util.inherits(constructor, superConstructor)

    constructor: FunctionsuperConstructor: Function不建议使用 util.inherits()。 请使用 ES6 的 class 和 extends 关键词获得语言层面的继承支持

    4.util.isDeepStrictEqual(val1, val2)

    深度严格比较。

    const obj1 = { a: 1, b: { c: 3, d: { e: 5 } } }; const obj2 = { a: 1, b: { c: 3, d: { e: 5, g: 6 } } }; console.log(util.isDeepStrictEqual(obj1, obj2));

    Processed: 0.015, SQL: 8