在使用node之前,首先你得安装node,关于怎么安装可在官网自行进行安装。
一.怎么检查自己的node安装成功了
在终端输入node- v 进行检查。

可以看出我安装的node版本是14.17.0的版本。
二.什么是node?
当我们在浏览器写js的时候, 会操作到DOM和BOM这些都是内置的api,这些都是在浏览器上运行,现在常用的性能最好的解析引擎是V8引擎,这些都属于前端的环境。
总的来说:
解析:V8引擎
运行环境:浏览器
api:浏览器内置的api
node也属于一种运行行的环境,里面也有自己内置的api,它也是用V8引擎来解析的, 不过使用node是在终端进行运行的,
总结来说:
解析:V8引擎
运行环境:终端
api:node内置的api
浏览器大家都懂,那么就有人问了终端是什么?
(1): 我对终端的理解就是和电脑交流的一种方式。
(2): 打开终端的方式 :cmd powershell
(3):查找文件的案例

三.node的一些快捷方式
1. ⬆ 上箭头:上次输入的命令
2.tab:补全路径
3.cls:清除整个窗口的内容
4.cd:切换目录
5.esc:清除当前行的命令
更多的命令可自行查找
四.简单的读取文件
(1)读取的方式
node 文件的路径
(2)案例

如果是cmd终端
点击后:


两种终端都可以,个人觉得第一种方便些。
五.通过fs来读取文件和写入文件
(1)导入fs这个模块
const fs=require('fs')
(2)调用
fs.readFile('./duqu.txt','utf8',function(err,datastr){
console.log('读取成功后的'+err);
console.log('读取成功后的'+datastr);
})

(3)参数的介绍
1.要读取的文件路径
2.编码格式
3.读取完之后的结果
(4)运行之后的结果

可以看出读取成功之后:
err----------------null
datastr------------返回的是文件里面的数据
读取失败之后两个参数的结果:


可以看出读取失败之后
err-----------报错的信息
datastr------underfined
(5)写入文件
需求:
1.将duqu这个里面的内容=替换成:
2.换行进行显示
代码:
const fs=require('fs')
fs.readFile('./duqu.txt','utf8',function(err,datastr){
// console.log('读取成功后的'+err);
// console.log('读取成功后的'+datastr);
// 如果为空的话说明读取成功
if (err) {
// null转换为布尔值是false
return console.log('文件读取失败');
}
// 1.先把成绩的数据,按照空格进行分割
const arrOld=datastr.split(',')
const arrNew=[]
arrOld.forEach(item=>{
arrNew.push(item.replace('=',':'))
})
const newStr=arrNew.join('\r\n')
console.log(newStr);
// 5.调用fs.writeFile()方法,把处理完毕后的成绩
fs.writeFile('.//xieru.txt',newStr,function(err){
// 读取失败 err的值也是为空 null转换为布尔值还是false
if (err) {
return console.log(err+'写入失败的');
}
console.log('成绩写入成功');
})
})
成功之后的结果:

六.补充if(变量)的含义
在JavaScrpit 可以直接将变量放在if后面的括号里,如:
if (a){
//...
}
以下情况会被认为返回false:
1."" 空的字符串
2.为0的数字
3.为null的对象
4.为underfined的对象
5.布尔值false
反正为真
七.关于__dirname路径的问题
说明:
__dirname:表示当前文件所处的目录

改造上面的代码:
const fs=require('fs')
fs.readFile( __dirname+ '/duqu.txt','utf8',function(err,datastr){
// console.log('读取成功后的'+err);
// console.log('读取成功后的'+datastr);
// 如果为空的话说明读取成功
if (err) {
// null转换为布尔值是false
return console.log('文件读取失败');
}
// 1.先把成绩的数据,按照空格进行分割
const arrOld=datastr.split(',')
const arrNew=[]
arrOld.forEach(item=>{
arrNew.push(item.replace('=',':'))
})
const newStr=arrNew.join('\r\n')
console.log(newStr);
// 5.调用fs.writeFile()方法,把处理完毕后的成绩
fs.writeFile(__dirname+ '/xieru.txt',newStr,function(err){
// 读取失败 err的值也是为空 null转换为布尔值还是false
if (err) {
return console.log(err+'写入失败的');
}
console.log('成绩写入成功');
})
})