将原生的 fs 模块进行了简单的 promise 封装,可以快速的使用 async_await 模式。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
let fs = require('fs')
// 读
function read(path) {
return new Promise(function (resolve, reject) {
fs.readFile(path, { flag: 'r', encoding: 'utf-8' }, function (err, data) {
if (err) {
// 失败执行的内容
reject(err)
} else {
// 成功执行的内容
resolve(data)
}
})
})
}
// 写
function write(path, content) {
return new Promise(function (resolve, reject) {
fs.writeFile(path, content, { flag: 'a', encoding: 'utf-8' }, function (
err
) {
if (err) {
// console.log('写入出错');
reject(err)
} else {
// console.log('写入成功');
resolve()
}
})
})
}
// 创建目录
function mkdir(path) {
return new Promise(function (resolve, reject) {
fs.mkdir(path, function (err) {
if (err) {
reject(err)
} else {
resolve()
}
})
})
}
// 重命名
function rename(oldPath, newPath) {
return new Promise(function (resolve, reject) {
fs.rename(oldPath, newPath, function (err) {
if (err) {
reject(err)
} else {
resolve()
}
})
})
}
// 读目录
function readdir(path, options) {
return new Promise(function (resolve, reject) {
fs.readdir(path, options, function (err, files) {
if (err) {
reject(err)
} else {
resolve(files)
}
})
})
}
module.exports = {
read,
write,
mkdir,
rename,
readdir,
}

已经上传到了 npm 可直接使用 npm install nodefstool 进行安装!