学习node---第二天

93 阅读2分钟

简单了解了node.js,就是安装node和配置环境了,不过因为平时用的是vue开发,所以环境已经有了,而且还用了nvm来管理不同的node版本,之前已经写过就不重复写了。

安装nvm来管理node.js版本 - 掘金 (juejin.cn))

然后就找了下创建node项目的步骤:

第一步:新建文件夹并初始化

创建一个oneDay文件夹,摁住shift键的同时点击鼠标右键

image.png

点击图中红框中---打开终端,然后输入 npm init -y

npm init 

会提示输入一些信息:

image.png 最后回车就行,然后会生成一个package.json文件,再手动创建一个index.js文件,就可以在idenx写node.js的内容了

成绩整理小案例

找了好久,终于找到一个比较合适的练手案例了,

image.png

先想了下应该怎么做,大概就是读取文件,读取到数据之后处理一下,再重新把处理过的数据写入进去。

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一定要转换成字符串,不然返回的数据是二进制类型 image.png

    接下来就是处理读取到的数据了,先根据空格来吧数据给分割开来,再把=号替换成:,最后再写入到文件里。

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");
}

注:写入文件时,第一个参数是,文件名,第二个是需要写入的数据,最后有一个回调函数,写入失败时会执行,刚试了下发现及时文件名写错了,也会自动生成一个错误的文件,然后把数据写入进去。。。