Node原生fs模块的promise封装

将原生的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
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 进行安装!

------ 本文结束  感谢阅读 ------