模块化
模块内容
let obj = {
name: "lusy",
hello:function(){
console.log("你好你好!")
}
}
//抛出一个模块
module.exports = obj;
// 导入引入的模块
// const df = require("./moudle");//模块路径 .js可以省略
// df.hello();
// df.name;
// fs是内置模块(一个内置模块都有2个方法 同步和异步的方法) 直接引入
let fs = require("fs");
// 读取目录的方法 (异步) 注:node中(异步回调)中 错误优先 err作为回调的第一个参数 默认为null
// fs.readdir("./",(err,dirs) =>{
// // 读取当前文件目录
// if(err){
// // 出现错误
// console.log(err);
// }else{
// // 执行成功
// console.log(dirs);
// }
// })
// null为真 则出现错误 为假则无误 执行成功
// 读取文件 读取文件中的内容
// 如果没有指定 encoding,则返回原始的 buffer
// 我们这里将文件内容(data)转为字符串
// fs.readFile("./moudle.js",(err,data)=>{
// if(err) throw err;
// console.log(data.toString());
// })
// 同步读取文件的方法 同步没有回调函数 try catch 就是防止程序出错 下面代码终止 用它以后后面还会继续执行
// 写一个错误的语句
// try{
// let dirs = fs.readFileSync("./");//当前所在是一个目录文件夹 这里写的读取文件方法 故错
// }catch(err){
// console.log(err)
// }
// console.log("前面错了 我还能执行!")
// 创建文件夹的方法 只能一级一级的创建 不能同时建一个文件夹和文件
// fs.mkdir("./dir1",(err)=>{
// // throw new Error ("出错了") 抛出一个错误 并终止代码执行
// if(err){
// console.log(err);
// }else{
// console.log("create ok");
// }
// })
// 例子 创建一个文件夹 文件夹可能存在
// 思路:先读取文件夹 如果没有同名的文件夹就直接创建 如果有同名的文件夹 就先删除再创建
// function createDir(name){
// fs.readdir("./",(err,dirs)=>{
// // dirs是目录中的文件名的数组,名字自己定义 第二个参数就表示目录中的文件名的数组
// // 如果没有在读取的文件夹中找到同名文件夹
// if(dirs.indexOf(name) == -1){
// fs.mkdir(`./${name}`,(err)=>{
// // name文件夹名是一个变量 这里用字符串拼接方式表示变量
// if(!err){
// console.log("创建成功")
// }
// })
// }else{
// // 存在同名文件夹的情况
// fs.rmdir(`./${name}`,(err)=>{
// if(err){throw new Error("删除失败")}
// fs.mkdir(`./${name}`,(err)=>{
// if(!err){
// console.log("创建成功");
// }
// })
// })
// }
// })
// }
// createDir("new")
// // 删除文件夹
// fs.rmdir("./dir1",(err)=>{
// if(err){
// console.log(err);
// }else{
// console.log("删除成功");
// }
// })
// 创建文件 (写入文件)
// fs.writeFile('./1.txt','写入的内容',(err)=>{
// if (err) throw err
// console.log("写入成功")
// })
// 修改时 是覆盖写入 不覆盖前面内容 就使用追加写入
// fs.appendFile('./1.txt','!追加的内容',(err)=>{
// if (err) throw err
// console.log("追加成功")
// })
// // 读取txt中的内容
// fs.readFile('./1.txt','utf-8',(err,content)=>{
// if (err) throw err
// console.log(content)
// // 不加utf-8 回来的数据就是buffer格式 所以加一下 转字符串 或者直接 content.toString()
// })
// // 删除一个文件
// fs.unlink('./del.txt',(err)=>{
// console.log(err);
// })
// 获取文件夹或文件的信息
// fs.stat 对象提供有关文件的信息
fs.stat("./",(err,state)=>{
console.log(state)
console.log(state.isDirectory())// true 是不是一个文件夹
console.log(state.isFile())// false 是不是一个文件 ./ 是当前所在文件夹
})