目录
初始Node.js
Node.js是什么?
运行环境-----基于v8引擎的js运行环境
安装
下载好后双击
查看Node版本号
在终端输入 node -v
node中执行js代码
- 建一个js文件,内容:console.log('Hello Node.js')
- 在终端输入:node 要执行的js文件路径
(可以cd到对应文件夹下执行:node 文件名.js)
fs文件系统模块
导入
const fs = require('fs')
读取指定文件中的内容:readFile
fs.readFile(path[,options],callback)
参数1:path 必选参数,字符串,文件路径
参数2:options 可选参数,表示以什么编码格式来读取
参数3:callback 必选参数。文件读取完成后,调用回调函数拿到读取的结果
示例代码:
// 导入
const fs = require('fs')
// 调用
/*
参数1:路径
参数2:编码格式。一般utf8
参数3:回调函数
*/
fs.readFile('./files/1.txt','utf-8',function(err,dataStr){
console.log('失败结果:',err);
console.log('----------');
console.log('成功结果:',dataStr);
})
失败
路径匹配失败。导致读取失败:相对路径,会以执行node命令时所处的目录。动态拼接出操作文件的完整路径。最好解决方法见(path模块)
解决:1.提供完整的存放路径。2.__dirname+'/files/1.txt'(双下划线dirname当前文件所在路径)
成功
向指定文件中写入内容 writeFile
fs.writeFile(file,data[,option],callback)
参数1:path 必选参数,字符串,文件路径
参数2:data 必选参数,写入的内容
参数3:options 可选参数,表示以什么编码格式,默认utf8
参数4:callback 必选参数。写入结果
示例代码:
// 导入
const fs = require('fs')
// 调用
/*
参数1:存放路径
参数2:要写入的内容
参数3:编码格式。一般utf8
参数4:回调函数,失败结果,成功结果
*/
fs.writeFile('./files123/node写入.txt','这是node的writeFile写入的文件内容','utf-8',function(err){
/*
如果写入成功:null
如果写入失败:对象
*/
console.log(err);
})
失败
成功
成功的结果
练习案例
获取成绩,修改成绩。写入新文件
// 1 导入
const fs = require('fs')
// 2.调用
fs.readFile('./files/成绩.txt','utf8',(err,dataStr)=>{
// 3.判断是否读取成功
if(err){
return console.log('读取失败!'+err.message);
}
// console.log('读取成功!'+dataStr);
//4 处理数据
const arrOld = dataStr.split(' ')
console.log('转为数组:',arrOld);
const arrNew = []
arrOld.forEach(item=>{
arrNew.push(item.replace('=',':'))
})
console.log('替换=:',arrNew);
const newStr = arrNew.join('\r\n')
console.log('整理后的内容:',newStr);
//5 写入
fs.writeFile('./files/成绩-ok.txt',newStr,(err)=>{
if(err){
console.log('写入文件失败!'+err.message);
}
console.log('写入文件成功!');
})
})
path路径模块
处理路径的模块,提供了方法和属性,满足用户对路径的处理需求
导入
const path = require('path')
路径拼接path.join()
之后fs的path尽量使用path.join拼接
const path = require('path')
const fs = require('fs')
// 注意:../ 会抵消前面的路径
const pathStr = path.join('/a','b/c','../','/d','/e')
console.log(pathStr);// \a\b\d\e
const pathStr2 = path.join('/a','b/c','../../','/d','/e')
console.log(pathStr2);// \a\d\e
fs.readFile(path.join(__dirname,'/files/1.txt'),'utf8',(err,dataStr)=>{
if (err) {
return console.log(`读取文件失败!${err.message}`);
}
console.log(`读取文件成功!${dataStr}`);
})
获取路径中的文件名path.basename()
获取路径中最后的一部分。通常获取文件名
const path = require('path')
const fpath = '/a/b/c/index.html'
const fullName = path.basename(fpath)
console.log(fullName);// index.html
const newTxt = path.basename(fullName,'.html')
console.log(newTxt);// index
获取文件拓展名:path.extname
const fext = path.extname(fpath)
console.log(fext);// index