Chrome V8
引擎 的 JavaScript 运行时ECMAScript
+ 内置模块(fs, http, path等)
+第三方模块
(别人开发的模块)注意:NodeJS中没有DOM,也没有BOM,也没有window对象。
注意:
1.win10 可以随意安装任何版本的Node
2.但是win7只能安装12及其以下的版本Node 以往版本下载
点击下载到的安装包,一路下一步默认安装
注意:
1.不能安装到中文目录如d:/软件,建议一直点击next即可
2.安装完成之后, 它不会在桌面出现快捷图标
// 导入核心模块 文件读写模块 fs 对象
const fs = require('fs');
console.log(fs);
// 引入核心模块
const fs = require('fs');
// 读取文件
fs.readFile('./txt/1.txt', 'utf8', (err, data) => {
if (err) {
console.log('==========');
console.log('错误错误--------------');
console.log('==========');
} else {
// 打印内容
console.log('正常运行-----------------------');
console.log(data);
}
});
// 读取图片
fs.readFile('./images/1609683065082.jpg', (err, data) => {
// 打印内容
console.log(data);
});
// 引入核心模块
const fs = require('fs');
// try 里面放可能会出错的程序
// catch 捕获 try里面的程序出错了 catch会触发 里面做错误处理
try {
// 开始同步读取文件
const data = fs.readFileSync('./txt/1.txt', 'utf-8');
console.log('-------------------------------------');
console.log('同步读取文件');
console.log(data);
console.log('-------------------------------------');
} catch (err) {
console.log('==================================================');
console.log('发送邮件,错误处理');
console.log(err);
console.log('==================================================');
}
writeFile(‘路径’,‘内容’,‘utf8’,callback)
utf8可省略
const fs = require('fs');
// 写入内容 异步
fs.writeFile('./txt/2.txt', '丑八怪,别把灯打开', err => {
// err 有值:表示出错
// err 没有值,null:表示运行正常
if (err) {
console.log('===================================================');
console.log('异步写入错误');
console.log(err);
console.log('===================================================');
} else {
console.log('---------------------------------------------------');
console.log('异步写入成功');
console.log('---------------------------------------------------');
}
});
// 总结:
// 如果文件有内容再写入内容 会覆盖
// 如果路径没有文件再写入内容 会创建文件并写入内容
writeFileSync(‘路径’,‘内容’,‘utf8’)
utf8可省略
const fs = require('fs');
try {
// 写入内容 同步
fs.writeFileSync('./txt/1.txt', '如果邪恶是华丽残酷的乐章');
console.log('----------------------------------------------------');
console.log('同步写入成功');
console.log('----------------------------------------------------');
} catch (err) {
console.log('========================================================');
console.log('同步写入失败');
console.log(err);
console.log('========================================================');
}
// 总结:
// 如果文件有内容再写入内容 会覆盖
// 如果路径没有文件再写入内容 会创建文件并写入内容
const fs = require('fs');
let index = 0;
while (true) {
index++;
fs.appendFileSync('./txt/1.txt', index + '-');
console.log('追加成功', index);
}
// 死循环追加,记得 ctrl + c
// try {
// // 追加内容 同步
// fs.appendFileSync('./txt/1.txt', '如果邪恶是华丽残酷的乐章');
// console.log('----------------------------------------------------');
// console.log('同步追加成功');
// console.log('----------------------------------------------------');
// } catch (err) {
// console.log('========================================================');
// console.log('同步追加失败');
// console.log(err);
// console.log('========================================================');
// }
const fs = require('fs');
// 写入内容 异步
fs.appendFile('./txt/1.txt', '丑八怪,别把灯打开', err => {
// err 有值:表示出错
// err 没有值,null:表示运行正常
if (err) {
console.log('===================================================');
console.log('异步追加错误');
console.log(err);
console.log('===================================================');
} else {
console.log('---------------------------------------------------');
console.log('异步追加成功');
console.log('---------------------------------------------------');
}
});
const fs = require('fs');
// // 异步
// // 1.读取图片
// fs.readFile('./images/1.png', (err, data) => {
// if (err) {
// console.log('读取错误');
// } else {
// console.log('读取成功');
// // 2.写入文件
// fs.writeFile('./images/2.png', data, (err, data) => {
// if (err) {
// console.log('写入错误');
// } else {
// console.log('写入成功');
// }
// });
// }
// });
// 同步
try {
// 1.读取图片
let file = fs.readFileSync('./images/1.png');
console.log('读取成功');
try {
// 2.写入文件
fs.writeFileSync('./images/3.png', file);
console.log('写入成功');
} catch (err) {
console.log('写入失败');
}
} catch (err) {
console.log('读取失败');
}
const fs = require('fs');
// // 同步
// let files = JSON.parse(fs.readFileSync('./libs/1.json', 'utf8'));
// files.push(files.length + 1);
// // console.log(files);
// let data = fs.writeFileSync('./libs/1.json', JSON.stringify(files), 'utf8');
// console.log(data);
//异步
fs.readFile('./libs/1.json', 'utf8', (err, data) => {
let arr = JSON.parse(data);
arr.push(arr.length + 1);
console.log(arr);
fs.writeFile('./libs/1.json', JSON.stringify(arr), err => {
console.log('写入成功');
});
});
const fs = require('fs');
// 同步方法
// 读取JSON文件并转数组
let people = JSON.parse(fs.readFileSync('./1.json', 'utf8'));
// 数组方法filter过滤
const man = people.filter(item => item.gender === '男');
const woman = people.filter(item => item.gender === '女');
// 完整写法
// constman = people.filter(item => {
// if (item.gender === '男') {
// return true;
// } else {
// return false;
// }
// });
console.log(man, woman);
fs.appendFileSync('./man.json', JSON.stringify(man));
fs.appendFileSync('./woman.json', JSON.stringify(woman));