Node.js
1. 终端常用命令
- cd 切换目录
- node xxx.js 执行js文件
- del 删除
- cls 清屏
- mkdir 创建文件夹
- rd 删除文件夹
2.window 常用快捷键
- ctrl + shift + n 快速创建文件夹
- Alt+Tab 两个程序交换
- Shift+Del 直接删除文件
- Ctrl+W:关闭当前文档
- Ctrl + C 复制
- Ctrl + X 剪切
- Ctrl + V 粘贴
- Ctrl + Z 撤消
3.常见的vscode的快捷键
- ctrl + b 切换资源管理器的状态
- alt + shift + Up/Down 快速复制当前行
- Ctrl + backspace 删除上一个词
- Ctrl + x 快速删除一行
- Ctrl + Alt + Up/Down 添加多个光标
4.字符串操作的API总结
- str.lower() 将大写字母转为小写字母
- str.upper() 将小写转为大写
- str.swapcase 大写转为小写,小写转为大写
- str.replace(‘被替换的字符’,‘要替换成什么字符’)
- str.subString() 截取字符串
5.课堂案例
将.md文件转换为 HTML 文件
第一步 读取文件
第二步 文件转换
第三步 重新写入文件
.md文件内容
# Markdown 文件的一级标题
startsWith() 方法用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false。
正文段落部分正文段落部分正文段落部分
## Markdown 文件的二级标题
正文段落部分正文段落部分正文段落部分
正文段落部分正文段落部分正文段落部分
### Markdown 文件的三级标题
正文段落部分正文段落部分正文段落部分
正文段落部分正文段落部分正文段落部分
代码演示(js文件内容)
const fs = require('fs')
const path = require('path')
fs.readFile(path.join(__dirname,'txt.md'), 'utf8', (err, data) => {
const arr = data.split('\n')
let bigArr = ''
arr.forEach(item => {
if (item.startsWith('# ')) {
const newStr = '<h1>'+ item.replace('# ', '') +'</h1>'
bigArr +=newStr
}else if (item.startsWith('## ')) {
const newStr = '<h2>'+ item.replace('## ', '') +'</h2>'
bigArr +=newStr
}else if (item.startsWith('### ')) {
const newStr = '<h3>'+ item.replace('### ', '') +'</h3>'
bigArr += newStr
} else {
const newStr = '<p>'+ item + '</p>'
bigArr +=newStr
}
})
fs.writeFile(path.join(__dirname,'txt.html'),bigArr,err => console.log('err',err))
})
然后在指定目录下打开cmd,执行 node 文件名.js即可.最后得到HTML文件的内容如下:
<h1>Markdown 文件的一级标题</h1>
<p>startsWith() 方法用来判断当前字符串是否以另外一个给定的子字符串开头,并根据判断结果返回 true 或 false。 </p>
<p>正文段落部分正文段落部分正文段落部分</p>
<h2>Markdown 文件的二级标题</h2>
<p>正文段落部分正文段落部分正文段落部分</p>
<p>正文段落部分正文段落部分正文段落部分</p>
<h3>Markdown 文件的三级标题</h3>
<p>正文段落部分正文段落部分正文段落部分</p>
<p>正文段落部分正文段落部分正文段落部分</p>
6.案例(1)
data.json中的数据:
[{"name":"小王"},{"name":"小李"}]
最终要实现的结果:
[{"name":"小王"},{"name":"小李"},{"name":"小张"}]
执行yourfile.js,在data.json添加一条数据 js中代码如下:
const fs = require('fs')
const path = require('path')
fs.readFile(path.join(__dirname,'./data.json'), 'utf8', (err, data) => {
if (err) {
console.log('err', err)
return
}
let re = { "name": "小张" }
let str = JSON.parse(data)
str.push(re)
fs.writeFile(path.join(__dirname,'./data.json'), JSON.stringify(str), (err) => {
if (err) {
console.log('err', err)
return
} else {
console.log('添加数据成功');
}
})
})
案例(2)
a.txt中的数据
小王,19
小李,20
小陈,21
通过执行a2b.js 得到
{
"list":[
{"name":"小王","age":19},
{"name":"小李","age":20},
{"name":"小陈","age":21}
],
"average":20,
"total":3
}
js代码如下:
const fs = require('fs')
const path = require('path')
fs.readFile(path.join(__dirname, 'a.txt'), 'utf8', (err, data) => {
let arr = data.split('\n')
let sum = 0
let avg = 0
let list = []
arr.forEach(item => {
let name = item.substring(0, 2)
let age = item.substring(3, 6)
list.push(`{"name":"${name}","age":${age}}`)
sum = sum + Number(age)
})
avg = sum/arr.length
let js = `
{
"list":[
${list}
],
"average":${avg},
"total":${arr.length}
}
`
console.log(list);
fs.writeFile(path.join(__dirname, 'b.json'), js, err => {
if (err) {
console.log('err', err)
return
} else {
console.log('数据转换成功');
}
})
})
|