path

  1. const path = require('path');
  2. //ESM
  3. import * as path from 'path';
API 说明
__dirname 不包含文件名本身的绝对路径
__filename 包含文件名本身的绝对路径
path.resolve 都可以看成cd操作
resolve在传入/路径时,会自动加上当前目录形成一个绝对路径,而join仅仅用于路径拼接
path.join
path.dirname(path) 返回目录名
  1. //ESM
  2. // import.meta.url 返回模块的绝对的 `file:` URL。
  3. // url模块中fileURLToPath()函数,返回完全解析的特定于平台的 Node.js 文件路径
  4. // path模块中dirname()函数,返回路径的目录路径
  5. import { fileURLToPath } from 'url';
  6. import { dirname } from 'path';
  7. const __filename = fileURLToPath(import.meta.url);
  8. const __dirname = dirname(__filename);

import.meta是一个给 JavaScript 模块暴露特定上下文的元数据属性的对象。它包含了这个模块的信息,比如说这个模块的 URL。

fs

https://www.runoob.com/nodejs/nodejs-fs.html
具有sync后缀的方法为同步方法,不具有sync后缀的方法为异步方法

  1. const fs = require('fs');
  2. const fs = require('fs').promises;
  3. //EMS
  4. import * as fs from 'fs';
  5. import { promises as fsPromises } from 'fs';
API 说明
fs.access/fs.accessSync 检查文件的权限
fs.existsSync 如果路径存在则返回 true,否则返回 false
fs.readFile/fs.readFileSync 读取文件的全部内容
fs.writeFile/fs.writeFileSync 写入文件
fs.mkdir/fs.mkdirSync 创建目录
  • fs.access ```javascript const file = ‘text.txt’;

// 检查文件是否存在于当前目录中。 fs.access(file, fs.constants.F_OK, (err) => { console.log(${file} ${err ? '不存在' : '存在'}); });

// 检查文件是否可读。 fs.access(file, fs.constants.R_OK, (err) => { console.log(${file} ${err ? '不可读' : '可读'}); });

// 检查文件是否可写。 fs.access(file, fs.constants.W_OK, (err) => { console.log(${file} ${err ? '不可写' : '可写'}); });

// 检查文件是否存在于当前目录中、以及是否可写。 fs.access(file, fs.constants.F_OK | fs.constants.W_OK, (err) => { if (err) { console.error( ${file} ${err.code === 'ENOENT' ? '不存在' : '只可读'}); } else { console.log(${file} 存在,且可写); } }); ```

process

process 对象提供有关当前 Node.js 进程的信息并对其进行控制。 虽然它作为全局可用,但是建议通过 require 或 import 显式地访问它:

API 说明 文档
process.argv 命令行参数 http://nodejs.cn/api-v12/process.html#processargv
process.cwd() 进程的当前目录(绝对路径)
process.env 环境信息