1 . 常用的终端命令/快捷键 ( 1 )
1.1 cls / clear : 清屏
1.2 dir / ls : 显示当前文件夹下的内容
1.3 cd \ : 进入到当前根目录
1.4 cd .. : 进入到上一级目录
1.5 cd 目录名 : 进入到指定目录
1.6 tab : 自动补全
1.7 上下键↑↓ : 调出历史命令
1.8 ctrl + C :停止node程序
1.9 鼠标右键 : 复制/粘贴
2 . 常用的快捷键
2.1 ctrl + C / ctrl + V : 复制 / 粘贴
2.2 ctrl + shift + N : 新建文件夹
2.3 ctrl + A : 全选
2.4 window + R : 调出终端
2.5 ctrl + X : 剪切
2.6 F5 : 刷新
3 . 常用的vscode快捷键
3.1 ctrl + B : 隐藏显示侧边栏
3.2 ctrl + P : 转到文件
3.3 alt + B : 在浏览器中打开
3.4 ctrl + shift + P : 打开命令面板
3.5 F2 : 重命名
3.6 F5 : 开始调试
3.7 ctrl + F : 查找
3.8 ctrl + S : 保存
3.9 ctrl + / : 注释
3.10 alt + Z : 一行内容多行显示
4 . 字符串操作的API
4.1 str.split() : 把字符串拆成数组
4.2 str.replace() : 把字符串做替换
4.3 str.startWith()/endWith : 判断是否以xxx开头/结尾
4.4 str.trim() : 去掉字符串左右两端空格
4.5 str.substr(x,y) : 截取字符串(从x截,截到y)
4.6 str.length() : 获取 字符串长度
4.7 str.toUpperCase()/toLowerCase() : 大小写的转换
4.8 str.indexOf() : 查找指定的字符串是否存在
5 . 案例
// 读取md文件 , 转成数组,判断加标签,最后写入html文件
// 先引入 fs path 模块
const fs = require('fs')
const path = require('path')
// 分析
// 1. 读入文件 fs.readFile()
// fs.readFile('地址','utf8','回调函数')
fs.readFile(path.join(__dirname, 'case.md'), 'utf8', (err, data) => {
// 2. 转换
if (err) {
console.log('错误提示', err);
return
}
// data是文件内容,是字符串 把字符串用 \n 分割成数组
const arr = data.split('\n')
// console.log(arr); // 数组形式
// console.log(arr.length); //数组长度
let bigStr = ''
arr.forEach(item => {
// item是数组每一个数据
// 判断是以 '#' 开头,就把他后面的内容放到<h1>中
if (item.startsWith('# ')) {
// console.log('每一行', item); //# Markdown 文件的一级标题
const newStr = '<h1>' + item.replace('# ', '') + '</h1>'
// console.log('h1', newStr); //Markdown 文件的二级标题
bigStr += newStr
} else if (item.startsWith('## ')) {
const newStr = '<h2>' + item.replace('## ', '') + '</h2>'
console.log(newStr) //</h2>arkdown 文件的二级标题
bigStr += newStr
} else if (item.startsWith('### ')) {
const newStr = '<h3>' + item.replace('### ', '') + '</h3>'
// console.log('h3', newStr)
bigStr += newStr
} else {
const newStr = '<p>' + item + '</p>'
// console.log('p', newStr)
bigStr += newStr
}
})
// 循环结束
// console.log('================================');
// console.log(bigStr);
// 3. 写入 fs.writeFile()
fs.writeFile(path.join(__dirname, 'case.html'), bigStr, 'utf8', (err) => {
console.log('错误提示', err);
})
})
6 . 作业
6.1
01-data.json中原有 [{"name":"小王"},{"name":"小李"}]
node myfile.js 之后 在01-data.json中追加一条数据记录
// 先导入模块
const fs = require('fs')
const path = require('path')
// 分析 先读入文件
let p = path.join(__dirname, '01-data.json')
// console.log(p);
fs.readFile(p, 'utf8', (err, data) => {
if (err) {
console.log(err);
// console.log(data);
return
} else {
console.log('成功');
}
let arr = JSON.parse(data)
console.log(arr)
let obj = { name: '小张', 'name': '神荼' }
arr.push(obj)
// console.log(arr);
let str = JSON.stringify(arr)
console.log('123', str);
// 写入
fs.writeFile(p, str, 'utf8', (err) => {
if (err) {
console.log('错误输出');
}
})
})
6.2
// 先导入模块
const fs = require('fs')
// 再读入
fs.readFile('02-a.txt', 'utf8', function (err, data) {
// 判断错误
if (err) {
console.log(err)
return
}
// 声明
let arr = data.split('\n')
let newArr = []
let sum = 0
let num = 0
arr.forEach(item => {
let obj = {}
// 拆分
obj.name = item.split(',')[0]
obj.age = +item.split(',')[1]
// 追加
newArr.push(obj)
// 求和
sum += obj.age
num++
})
let json = {
list: newArr,
average: sum / num,
total: num
}
console.log(json)
fs.writeFile('b.json', JSON.stringify(json), function () {
})
})