简单了解了node.js,就是安装node和配置环境了,不过因为平时用的是vue开发,所以环境已经有了,而且还用了nvm来管理不同的node版本,之前已经写过就不重复写了。
安装nvm来管理node.js版本 - 掘金 (juejin.cn))
然后就找了下创建node项目的步骤:
第一步:新建文件夹并初始化
创建一个oneDay文件夹,摁住shift键的同时点击鼠标右键
点击图中红框中---打开终端,然后输入 npm init -y
npm init
会提示输入一些信息:
最后回车就行,然后会生成一个package.json文件,再手动创建一个index.js文件,就可以在idenx写node.js的内容了
成绩整理小案例
找了好久,终于找到一个比较合适的练手案例了,
先想了下应该怎么做,大概就是读取文件,读取到数据之后处理一下,再重新把处理过的数据写入进去。
node.js中读取数据有个模块(fs)使用时引入即可:
var fs = require("fs")
1.读取数据
分为同步的fs.readFileSync()和异步的fs.readFile()
异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。
异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。
比起同步,异步方法性能更高,速度更快,而且没有阻塞。
所以使用fs.readFile(),先在案例目录下创建一个file文件夹,然后在file下创建成绩.txt文件,文件内容就和第一张图片一样,包含一些数据。然后使用异步读取
const fs = require("fs");
fs.readFile("./file/成绩txt",function(err,data){
//先判断读取失败时的情况
if(err){
return console.error(err)
}
console.log("读取到的数据:",data.toString())
})
-
注意:data一定要转换成字符串,不然返回的数据是二进制类型
接下来就是处理读取到的数据了,先根据空格来吧数据给分割开来,再把=号替换成:,最后再写入到文件里。
fs.readFile("./file/成绩.txt", function (err, data) {
if (err) {
return console.error(err);
}
const performance = data.toString();
console.log("文件内容:", performance);
// 先根据空格分割
const newPerformance = performanceFun(performance);
console.log("处理后文件内容:", newPerformance);
fs.writeFile("./file/成绩1.txt", newPerformance, (err) => {
if (err) {
return console.error(err);
}
console.log("文件写入成功");
});
});
// 处理文件函数
function performanceFun(dataArray) {
const newPerformance = dataArray.split(" ");
const arrNew = [];
newPerformance.forEach((ele) => {
arrNew.push(ele.replace("=", ":"));
});
return arrNew.join("\n");
}
注:写入文件时,第一个参数是,文件名,第二个是需要写入的数据,最后有一个回调函数,写入失败时会执行,刚试了下发现及时文件名写错了,也会自动生成一个错误的文件,然后把数据写入进去。。。