Skip to content

常用模块

path 路径处理工具

  • basename:路径最后一部分
  • dirname:目录名,即路径除去最后部分,前面部分路径
  • parse:解析路径为对象
  • format:对象解析为路径,与 parse 相对应
  • resolve: 把一个路径解析为绝对路径(最常用)
  • join:路径拼接

进程模块

  • argv:启动 node 时的命令行参数
  • execArgv:node 命令后的直接参数
  • env:用户环境信息
  • cwd():获取当前进程工作目录
  • exit():退出进程
  • stdout 和 stdin:屏幕输出和输入
  • memoryUsage:内存使用情况
  • 监听: process 是一个可监听对象

util 模块

  • callbackify:将异步函数转为回调形式
  • promiseify:将异步函数转为 Promise 形式

引入模块

js
import { createRequire } from "module";
const require = createRequire(import.meta.url);
const util = require("util");
const fs = require("fs");
import { createRequire } from "module";
const require = createRequire(import.meta.url);
const util = require("util");
const fs = require("fs");

callbackify

js
// 1. 定义的异步函数
function fn1(fn) {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve(10);
    }, 2000);
  });
}
// 2. 包装返回
const callbackFn1 = util.callbackify(fn1);
/**
 * 3. 调用执行
 * node 所有的异步操作都是通过回调方式来获取结果的
 * 第一个参数都是错误,后面才是结果
 */
callbackFn1(function (err, num) {
  console.log(num);
});
// 1. 定义的异步函数
function fn1(fn) {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve(10);
    }, 2000);
  });
}
// 2. 包装返回
const callbackFn1 = util.callbackify(fn1);
/**
 * 3. 调用执行
 * node 所有的异步操作都是通过回调方式来获取结果的
 * 第一个参数都是错误,后面才是结果
 */
callbackFn1(function (err, num) {
  console.log(num);
});

promiseify

js
// 1.异步读取文件
fs.readFile("./test-data.json", (err, content) => {
  console.log(1, content);
});
// 2. 通过promisify包装返回,错误通过catch捕获
const promiseReadFile = util.promisify(fs.readFile);
// 3. 调用执行
promiseReadFile("./test-data.json")
  .then((res) => {
    console.log(2, res);
  })
  .catch((err) => {
    console.err(err);
  });
console.log(3);
// 1.异步读取文件
fs.readFile("./test-data.json", (err, content) => {
  console.log(1, content);
});
// 2. 通过promisify包装返回,错误通过catch捕获
const promiseReadFile = util.promisify(fs.readFile);
// 3. 调用执行
promiseReadFile("./test-data.json")
  .then((res) => {
    console.log(2, res);
  })
  .catch((err) => {
    console.err(err);
  });
console.log(3);

TIP

node 中所有的异步操作都是通过回调方式来获取结果的,也是 node 开发人员嫌弃的原因,后面搞了个 deno