5.1.1 描述:
/*
描述:
如果persons中没有对应的用户,则把user写入到persons.json中,提示注册成功并且不能修改原来的数据结构
如果有对应的用户名,则提示用户名已经被占用
*/
5.1.2 persons.json文件
[{"username":"xm1","password":"1234"},{"username":"xm2","password":"222"},{"username":"xm3","password":"333"}]
5.1.3 node文件
1)引入文件模块
let fs = require("fs");
2)需要写入的数据
let user = {
username: "admin1",
password: "12345"
}
3)创建实现注册功能的函数(推荐使用findIndex()方法)
function doRegister() {
// 读取peersons.jsan文件,存储在data中
let data = fs.readFileSync("./persons.json");
// 将读取到的字符串转成JSON对象的格式,存储在arr中
let arr = JSON.parse(data.toString());
// 遍历读取到的数据
// 方法一:使用findIndex()方法,如果账户不存在,返回-1
/* let tag = arr.findIndex((item) => {
return item.username == user.username && item.password == user.password;
});
if (tag == -1) {
// 将新数据添加进数组中
arr.push(user);
// 将数组转成字符串格式,写入persons.json中
fs.writeFileSync("./persons.json", JSON.stringify(arr));
console.log("注册成功");
} else {
console.log("用户名已经被占用");
} */
// 方法二:for循环遍历
let tag = false; //定义标记 false-->账户不存在,true-->账户存在
for (let item of arr) {
//如果账户已经存在
if (item.username == user.username && item.password == user.password) {
// 更新标记
tag = true;
console.log("账号已存在");
}
}
// 账户不存在
if (tag == false) {
// 将新数据添加进数组中
arr.push(user);
// 将数组转成字符串格式,写入persons.json中
fs.writeFileSync("./persons.json", JSON.stringify(arr));
console.log("注册成功");
}
}
4)调用注册函数
doRegister();
5)运行方式:
vscode-->在集成终端中打开 -->使用node命令运行.js文件