- File System(fs)模块:
文件和文件夹的操作模块,主要对两部分进行操作,一个是文件,另一个是文件夹。
const _fs = require(‘fs’);
1.1 新建文件夹:
1.1.1 异步写法:_fs.mkdir(path,[options],callback);
// 第一个参数是地址,创建的文件夹存放的地址;
// 第二个参数不是必填参数,可以是一个整数用来指定文件的模式(权限与粘滞位);也可以是一个对象,其中recursive属性是否创建父目录;
// 第三个参数是回调函数,参数就是error的错误
_fs.mkdir('/tmp/a/apple',{recursive:true},(err)=>{if(err)throw err})
异步都有回调函数,在node中,回调函数都有一个规范,错误优先的原则,回调函数的第一个参数都是err,
表示是不是错误,默认的都是null,没有错误。
1.1.2 同步写法:_fs.mkdirSync(path,[options]);
如果调用出错,都会终止执行,必须要用try catch捕获错误。
try{
let result=mkdirSync("./test2");
}catch(e){
console.log(new Error("错误"));
}
1.2 删除文件夹:
1.2.1 异步写法:_fs.rmdir(path,callback);
1.2.2 同步写法:_fs.rmdirSync(path);
1.3 读取文件夹:
1.3.1 异步写法:_fs.readdir(path,[options],callback);
// 读取文件夹的时候,回调函数会有两个参数,一个是错误,一个是读取的文件;
// 如果options是一个字符串,则指定字符编码。
如果encoding设为‘buffer’,则返回的文件名是Buffer,可以定义为uth-8;
_fs.readdir('./test',(err,file)=>{
console.log(err);
console.log(file); // 文件夹中的文件,以数组的形式存放
})
1.3.2 同步写法:_fs.readdirSync(path[, options])
1.4 判断是否为文件或者文件夹:_fs.stat(path,[options],callback);
/*1. callback 有两个参数 (err, stats),其中 stats 是一个 fs.Stats。
2. 如果发生错误,则 err.code 会是常见系统错误之一。
3. 不建议在调用 fs.open()、fs.readFile() 或 fs.writeFile() 之前使用 fs.stat() 检查文件是否存在。
应该直接打开、读取或写入文件,当文件无效时再处理错误。
4. 如果要检查文件是否存在但不操作它,建议使用 fs.access()。*/
fs.stat("./test2",(err,state)=>{
err:错误
state.isFile(); 状态是否是文件,返回值为布尔值
state.isDirectory(); 状态是否是文件夹,返回值为布尔值
})
1.5 新建文件:fs.writeFile(file, data[, options], callback);
1.6 写入(持续)文件:不覆盖文件
fs.appendFile(“./file.txt”,data,(err)=>{
console.log(err);
})
1.7 删除文件:
fs.unlink(path,callback);
fs.unlink(“./file.txt”,(err)=>{
console.log(err);
})
1.8 读取文件:fs.readFile(file,callback);
// callback回调函数中有两个参数,一个是err,另一个是data,读取的数据,一般data的格式都要改变,两种方法:
- 可以写成data.toString;
可以调用方法的时候多加一个参数,改变数值类型的(file,”utf8”,callback);
URL模块
2.1 将一个url地址变成一个对象。
url.parse(urlString,[opotion]);
// 第一个参数填的是url地址;
// 第二个参数默认是false,如果设置成true,就可以将URL组成的query转成对象的形式;
// 第三个参数默认是false,如果设置成true,就可以解析前面没有协议的地址,不然就得不到端口号等;
2.2 将对象(格式正确)转化为一个URL地址
url.format(URL,[options]);
options