node api

npm-tool-cli 涉及到的nodeAPI使用。

接上一篇

1、 node全局变量

1.1、 process: 对象是全局变量,提供当前 Node.js 进程的信息并对其进行控制。无需使用 require()。

1.1.1、 process.argv

  • 属性返回一个数组,包含当启动 Node.js 进程时传入的命令行参数。

  • 第一个元素是 process.execPath。

  • 第二个元素将是正在执行的 JavaScript 文件的路径。

  • 其余元素将是任何其他命令行参数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// process-args.js
process.argv.forEach((val, index) => {
console.log(`${index}: ${val}`);
});

// 运行
$ node process-args.js one two=three four

输出如下:
0: /usr/local/bin/node
1: /Users/mjr/work/node/process-args.js
2: one
3: two=three
4: four

1.1.2、 process.cwd()

process.cwd() 方法返回 Node.js 进程的当前工作目录。

例如我们在package.json的目录执行依赖中的脚本,但是需要获取package.json的路径。

1.1.3、 process.exit()

退出node执行。

1.2、 __dirnamepath.dirname()

path.dirname() 方法返回 path 的目录名,尾部的目录分隔符将被忽略。

1
2
path.dirname('/foo/bar/baz/asdf/quux')
// 返回: '/foo/bar/baz/asdf'

二者返回相同:

1
2
3
4
console.log(__dirname)
// 打印: /Users/mjr
console.log(path.dirname(__filename))
// 打印: /Users/mjr

1.3、 __filename

1
2
console.log(__filename)
// 打印: /Users/mjr/example.js

2、 fs模块

PS: 如果你想知道文件的详细信息,或者判断一个名字是文件还是目录,可通过对象fs.Stats提供的信息来判断

2.1、 异步: fs.stat(path[, options], callback),可以用来获取文件的信息内容

path: 文件的路径。

options: 返回的 fs.Stats 对象中的数值是否应为 bigint 型。默认值: false。

callback:

 参数: err, 如果出现错误,则 err.code 将是常见系统错误之一。

 参数:stats: stats 是一个 fs.Stats 对象,关于文件的信息。 地址

1
2
3
fs.stat(dir, (err, stats) => {
console.log(err, stats, 'kzzzzz')
})

2.2、 同步: fs.statSync(path[, options]) ,直接返回fs.Stats 对象

path: 文件的路径。

options: 返回的 fs.Stats 对象中的数值是否应为 bigint 型。默认值: false。

1
fs.statSync(dir).isFile() // true or false

2.3、 fs.Stats对象的方法

  • stats.isDirectory() : true 文件系统目录

  • stats.isFile() : true 常规文件

2.4、 fs.readdir(path[, options], callback), 异步读取目录内容

  • path:

  • options:

 encoding: 默认utf-8编码

 withFileTypes: 默认值false。设置为 true,则返回的结果将包含 fs.Dirent 对象。

  • callback:

 err: 错误提示

 files: 内容数组

2.5、 fs.readdirSync(path[, options]),同步读取目录内容

参数同异步

2.6、 fs.existsSync() 同步判断目录是否存在返回true或false

2.7、 fs.mkdirSync(path,option) 同步创建目录,返回 undefined。 fs.mkdir() 的同步版本。

  • option

 recursive 默认false ,是否递归(自动创建父级)

2.8、 fs.readFileSync(path, option) 同步读取文件的全部内容。

  • option

  encoding 编码。

  flag 参阅支持的文件系统标志。默认值: ‘r’。参考

2.9、 fs.writeFile(file, data, options, callback) 异步写入文件

  • file: string Buffer URL integer 文件名或文件描述符。

  • data: string Buffer TypedArray DataView

  • options: Object string

 encoding | 默认值: ‘utf8’。

 flag 参阅支持的文件系统标志。默认值: ‘w’。

  • callback: Function

 err 报错内容

1
2
3
fs.writeFile('文件.txt', 'ffff', (err) => {
if (err) throw err;
});

2.10、 fs.openSync(path,flags, mode) 同步打开文件,返回表示文件描述符的整数。

2.11、 fs.readSync(fd, buffer, offset, length, position) 同步从 fd(fs.openSync的返回值) 指定的文件中读取数据。

返回
顶部