Node.js,内置fs代码

115 阅读2分钟
//数组的方法

// 数组的find方法 寻找数组中的某一个元素  forEach 还是使用 find!! 
// 数组的findIndex方法
// 数组的filter方法
// 数组的map方法
// 数组的every方法
// 数组的some方法
// 数组的reduce


const list = ["a", "b", "c", "d", "e"];

const obj = list.find(item => {
  // 如果找到满足条件的元素, return true  不会继续往下执行
  // console.log(item);
  if (item === "c") {
    return true
  }
})

console.log(obj);
//for和foreach的区别
const list = ["a", "b", "c", "d", "e"];



// function queryByLetter(letter) {

//   // for 直接加return   1  对这个函数 返回 值     2 终止循环
//   for (let index = 0; index < list.length; index++) {
//     if (letter === list[index]) {
//       return list[index]
//     }
//     console.log(list[index]);
//   }
// }

// const letter = queryByLetter("a");
// console.log("letter===", letter);

// function queryByLetter(letter) {
//   // 1 return 不能终止掉循环 (forEach不能终止循环!!!)!!! 2 写了return 不会把值 当作函数的返回值
//   list.forEach(item => {
//     if (item === letter) {
//       return item;
//     }
//     console.log(item);
//   })
// }
function queryByLetter(letter) {
  let obj;
  list.forEach(item => {
    if (item === letter) {
      obj = item;
    }
  })
  return obj;
}

const letter = queryByLetter("a");
console.log("letter===", letter);


/* 
1 for循环 可以主动 终止掉循环 (break,return 都可以)
2 forEach 不能终止循环!! 


 */
//箭头函数和普通函数


function show(num) {
  return num + 100;
}

const show = (num, num2) => {
  return num + 100 + num2;
}
const show = num => {
  return num + 100;
}

const show = (num, num2) => {
  return num + 100 + num2;
}


function show(num) {
  return num + 100;
}

const show = num => num + 100;


内置fs的使用

[
  { "id": 0, "color": "black", "name": "家猪" },
  { "id": 1, "color": "black", "name": "野猪" },
  { "id": 2, "color": "black", "name": "黑土猪" },
  { "id": 3, "color": "black", "name": "老伍猪" }
]
//1, 内置模块fs同步读取

// 引入核心模块,关键字require
const fs = require('fs')
// 读取文件
// fs.readFile("文件的地址",回调函数) 默认是返回 二进制的数据给我们的!!!
// fs.readFile("文件的地址","utf-8",回调函数) 默认是返回 正常的文本!!
fs.readFile('./comm/01.JSON', 'utf-8', (err, data) => {
    if (err) {
        console.log('失败');
    } else {
        console.log('成功');
    }
})
// 2,遍历文件,数组输出
// readFile 读取文本 返回的格式 类型   是字符串类型
const fs = require('fs')
fs.readFile('./comm/01.JSON', 'utf-8', (err, data) => {
    if (err) {
        console.log('失败');
    } else {
        // console.log('成功');
        // 遍历
        // 转换成数组
        const list = JSON.parse(data)
        list.forEach(item => {
            console.log(`id:${item.id} 名称:${item.name}`);
        });
        console.table(list);
    }
})


// 3,同步读取

const fs = require('fs')
// 同步读取
const data = fs.readFileSync('./comm/01.JSON', 'utf-8')
const list = JSON.parse(data)
list.forEach(item => {
    console.log(`id:${item.id} 名称:${item.name}`);
});


// 4,创建文件

// 创建文件 writeFile 

// 创建文件的同时  还写入 内容 

// 如果想要创建的文件已经存在了,新创建的文件会直接覆盖旧的文件!! 

const fs = require('fs')
// 创建文件
// fs.writeFile("文件路径", "文件内容", (err, data) => {

// })
fs.writeFile('./comm/02.JSON', '111', (err, data) => {
    if (err) {
        console.log("失败");
        console.log(err);
    } else {
        console.log("成功");
    }
})



// 同步代码方式创建文件

// fs.writeFileSync("创建文件的地址", "文件的内容");

// 5,根据id查询对应的数据
const fs = require('fs')
const data = fs.readFileSync('./comm/01.JSON', 'utf-8')
const list = JSON.parse(data)
// 根据id查对应数据
const queryById = (id) => {
    return list.find(item => item.id === id)
}
const item = queryById(1)
console.log(item);

// 6,新建元素
const fs = require('fs')
const data = fs.readFileSync('./comm/01.JSON', 'utf-8')
const list = JSON.parse(data)
function insert(obj) {
    list.push({ ...obj, id: Date.now() })
    fs.writeFileSync('./comm/01.JSON', JSON.stringify(list))
}
insert({ name: '猴子' })


// 7,删除元素
const fs = require('fs')
const data = fs.readFileSync('./comm/01.JSON', 'utf-8')
const list = JSON.parse(data)
function deleteById(id) {
    const index = list.forEach(item => item.id === id);
    list.splice(index, 1)
    fs.writeFileSync('./comm/01.JSON', JSON.stringify(list))
}
deleteById(1)


// 8,修改元素
const fs = require('fs')
const data = fs.readFileSync('./comm/01.JSON', 'utf-8')
const list = JSON.parse(data)
function updataById(id, obj) {
    const index = list.findIndex(item => item.id === id);
    list[index] = { ...obj, id }
    fs.writeFileSync('./comm/01.JSON', JSON.stringify(list))
}
updateById(3, { color: 'pink', name: '粉猪' })


// 9,追加

const fs = require('fs')
fs.appendFile('./comm/03.JASON', '4444', (err) => {
    if (err) {
        console.log('失败');
    } else {
        console.log('成功');
    }
})
// 同步追加
fs.appendFileSync('./comm/03.JASON', '1111')