终端中的快捷键
↑键,快速定位到上一次执行的命令
tab键,快速补全路径
esc键,快速清空已输入命令
执行cls命令,清空终端
(还没学操作系统,所以就先写这里啦)
fs模块
fs模块是node.js官方提供的、用来才做文件的模块。它提供了一系列的方法和属性,用来满足用户对文件的操作需求。
fs.readFile()方法,用来读取指定文件中的内容
fs.writeFile()方法,用来向指定的文件中写入内容
如果要在javascript代码中使用fs模块来操作文件,需要使用如下的方式先导入它
const fs = require('fs')
fs.readFile()的语法格式
使用fs.readFile()方法,可以读取指定文件中的内容,格式为
fs.readFile(path[,options],callback)
//以后的中括号内部的值为可选项,其它值为必选项
//path表示字符串 option表示编码格式 callback通过回调函数拿到读取结果
可以判断err来判断文件是否成功。
fs.readFile('./files/1.txt','utf-8',function(err,dataSTR){
console.log(err)//打印失败的结果
//如果读取成功,则error值为null。若读取失败,则error的值为错误对象
console.log('----')
console.log(dataSTR)//打印成功结果。若失败则dataSTR值为undefined
})
fs.writeFile()的语法格式
使用fs.writeFile()方法,可以向指定的文件中写入内容,语法格式:
fs.writeFile(file,data[,options],callback)
//file表示文件路径 data表示要写入的内容 option表示编码格式 callback表示写入完成后的回调函数
可以判断err来判断文件是否成功。
fs.writeFile('./files/1.txt','xmynb',function(err){
console.log(err)
//如果写入成功,则err值为null。失败则是错误对象
})
将js中的字符串转为一个个数组
const arrOld = dataSTR.split(' ')
//将dataSTR中读取的数据按空格分开,就形成了一个个数组
const arrNew =[]
//创建一个新数组
arrOld.forEach(item => {
arrNew.push(item.replace('=',':'))
//将数组中的数据中的=替换为:
});
//把新数组的每一项进行合并,得到一个新的字符串
const newStr = arrNew.join('\r\n')
console.log(newStr)
路径问题
在使用fs模块操作文件时,如果提供的操作路径是./或../开头的相对路径时,容易出现路径动态拼接错误的问题
原因:在代码执行时,会以node命令时所处的目录,动态拼接出被操作文件的完整路径。
提供完整的文件存放路径(绝对路径)可以解决此问题(注,js中1个\表示转义,要用2个)
使用绝对路径移植性非常的差且不利于维护
解决:
__dirname 表示当前文件所处的目录,不会根据执行node命令所处的目录而动态变化
fs.readFile(__dirname+'/files/1.txt','utf-8',function(err,dataSTR){
if(err){
return console.log('读取文件失败!'+err.message)
}else
console.log('读取文件成功!'+dataSTR)
})
path模块
path模块是node.js官方提供,用于处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的需求
path.join()方法,用来将多个路径片段拼接成一个完整的路径字符串
path.basename()方法,用来从路径字符串中,将文件名解析出来
果要在javascript代码中使用path模块来操作文件,需要使用如下的方式先导入它
const path=require('path')
path.join()语法格式
path.join()可以吧多个路径片段拼接为完整路径字符串
const path=require('path')
const pathstr = path.join('/a','/b/c','../','/d')
console.log(pathstr)//因为../有抵消路径的功能,所以返回值为\a\b\d
const pathstr2=path.join(__dirname,'/files/1.txt')
console.log(pathstr2)//输出 当前文件夹所在目录\files\1.txt
path.basename()语法格式
使用path.bathname()方式,可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名
path.basename(path[,ext])
//path是必选,表示一个路径的字符串。ext是可选,表示文件拓展名
使用案例
const fpath='/a/b/v/1.txt.html'//文件存放路径
var fullname=path.basename(fpath)
console.log(fullname)//输出index.html
var namewithoutexit =path.basename(fpath,'.html')
console.log(namewithoutexit)//输出index
path.extname()的语法格式
使用path.extname()方法,可以获取路径中的拓展名部分
path.extname(fpath)
Q.E.D.