fs文件系统
1.使用fs模块
const fs = require('fs');
所有的文件系统操作都具有同步的、回调的、以及基于 promise 的形式。
2.同步
const fs = require('fs');
try {
fs.unlinkSync('delete.js');
console.log('/delete.js 已被成功地删除');
} catch (err) {
// 处理错误
console.log('删除失败')
}
运行node fs.js,控制台返回/delete.js 已被成功地删除,并删除delete.js文件
同步的形式阻塞 Node.js 事件循环和进一步的 JavaScript 执行,直到操作是完成的。 异常是被立即地抛出,且可以被使用 try…catch 处理,或者可以被允许冒泡。
3.回调
const fs = require('fs');
fs.unlink('delete.js', (err) => {
if (err) throw err;
console.log('delete.js 已被成功地删除');
});
运行node fs.js,控制台返回/delete.js 已被成功地删除,并删除delete.js文件
回调的形式把一个完成回调函数作为其最后一个参数,并且异步地调用该操作。 被传给完成回调的参数取决于方法,但是第一个参数总是被预留给一个异常。 如果操作被成功地完成,则第一个参数是 null 或 undefined。
4.Promise
const fsPromises = require("fs").promises;
(async function(path) {
try {
await fsPromises.unlink(path)
console.log(`${path} 已被成功地删除`);
} catch (error) {
console.error('有一个错误:', error.message);
}
})('delete.js');
在普通函数定义的前面加上async关键字 普通函数就变成了异步函数 异步函数默认的返回值是promise对象 在异步函数内部使用throw关键字进行错误的抛出
await关键字: *1.它只能出现在异步函数中 *2.await promise 它可以暂停异步函数的执行等待promise对象返回结果后再向下执行函数*