node常见命令

202 阅读2分钟

本篇不对node命令做详细介绍。仅总结node常见模块的常见命令,仅起查阅作用。

1、global全局对象

  • __filename 表示当前正在执行的脚本文件的绝对路径。
  • __dirname 表示当前执行脚本所在目录的绝对路径。

这 2 个变量,只在 CJS 模块下存在,如果是 ESM 将会出现以下的报错信息。 如果ESM模块中需要dirname,可参考下面的文章:

封装一个ESM模块中的dirname API

2、process

  • process.argv 返回一个数组,包含启动 Node.js 进程时传递的命令行参数。

  • process.cwd() 获取当前工作目录的绝对路径。

  • process.env 获取当前执行环境的环境变量 (对象形式)。

  • process.version 获取当前 Node 版本。

  • process.exit([code]):终止 Node.js 进程,如果指定了 code 参数,则使用该参数作为退出状态码。

  • process.pid:返回进程的 PID (进程 ID);

  • process.platform:返回运行 Node.js 的操作系统平台;

  • process.arch:获取 CPU 架构信息。

  • process.stdout:标准输出流,常用 process.stdout.write 进行数据写入。

  • process.stdin:用于从标准输入流 (stdin) 读取数据。

3、path 模块

  • path.join将多个路径拼接成一个相对路径 (或绝对路径,取决于第一个路径是否为根路径)。

  • path.resolve将多个路径拼接成一个绝对路径,返回一个解析后的绝对路径。

  • path.dirname返回路径中的目录名。

  • path.basename返回路径中的文件名,并可选地去除给定的文件扩展名。

  • path.extname获取路径中的文件扩展名。

  • path.normalize用于规范化路径,将路径中的不规范部分调整为标准格式,可以用于处理以下问题:

  1. 路径中的斜杠数量过多的情况。
  2. 路径中存在的 ./ 或 ../,即相对路径的情况。
  • path.parse用于解析文件路径,将其拆分为一个对象。

  • path.sep返回当前系统文件路径使用的分隔符。

4、fs 模块

  • fs.readFileSync同步读取内容。

  • fs.readFile异步读取内容。

  • fs.writeFileSync同步写入文件。

  • fs.statSync 获取文件或者目录的基本信息。

返回的对象上还包含可直接调用的方案,用于判断文件类型。

const fileInfo = fs.statSync('./test.txt')
// 判断是文件还是目录
console.log(fileInfo.isFile(), fileInfo.isDirectory())

const dirInfo = fs.statSync('./test-dir')
// 判断是文件还是目录
console.log(dirInfo.isFile(), dirInfo.isDirectory())

try {
  // 查询一个不存在的文件/目录信息(会抛出异常,需要自行捕获)
  fs.statSync('not_exist.txt')
} catch (e) {
  console.log('文件不存在')
}

  • fs.appendFileSync 向文件末尾追加写入内容。

  • fs.renameSync 方法用于文件移动,当然也可以是重命名文件。

  • fs.unlinkSync 和 fs.rmSync 都可用于单文件删除。

  • fs.readdirSync 获取目录下的文件信息。

  • fs.mkdirSync 创建目录。(可通过设置 recursive:true 来递归创建多级目录)

  • fs.rmdirSync 删除目标目录。(recursive: true 表明删除包含其子目录)

  • fs.watch监听目录变更。

5、util 模块

6、http / https 模块

7、child_process 子进程,