Nodejs基础
- fs模块
- fs练习-批量重命名
- fs练习-批量排序重命名
- path模块
- resolve 解决
- sep 分隔符
- parse 方法
- 其他的几个方法
- HTTP协议
- http报文
- 安装fiddler软件
- 配置fiddler
- 使用fiddler
- 请求报文结构
- 整体
- 请求行
- 请求方法
- URL
- HTTP版本号
- 请求头
- 请求体
- 响应报文结构
- 整体
- 响应行
- 响应状态码
- 响应状态的描述
- 响应头
- 响应体
fs模块
fs练习-批量重命名
基础练习
- 编写一个 JS 文件,实现复制文件的功能
- 文件重命名
const fs=require('fs')
fs.readdir('./code',(err,data)=>{
if(err){
console.log("读取失败")
return
}
data.forEach(item=>{
//遍历数组,将数字和名字拆分开
let arr=item.split('-')
console.log(arr);
//提取数字和名字
let [num,name]=arr;
//数字小于0的前面加0
if(Number(num)<10){
num='0'+num
}
//重新组合
let newName=num+'-'+name
//文件重命名
fs.renameSync(`./code/${item}`,`./code/${newName}`)
})
})
代码执行前:
代码执行后:
fs练习-批量排序重命名
需求:删除其中一个文件,序号中断,需要后续的序号顺连
//导入 fs 模块
const fs = require('fs');
//读取 code 文件夹
const files = fs.readdirSync('./code');
//遍历数组
files.forEach((item, index) => {
//拆分
let [num, name] = item.split('-');
//index 自增
index++;
//判断
index = index < 10 ? '0' + index : index;
//拼接新的名字
let newName = index + '-' + name;
//移动文件
fs.renameSync(`./code/${item}`, `./code/${newName}`);
});
代码执行前:
代码执行后:
path模块
API | 说明 |
---|---|
path.resolve | 拼接规范的绝对路径 常用 |
path.sep | 获取操作系统的路径分隔符 |
path.parse | 解析路径并返回对象 |
path.basename | 获取路径的基础名称 |
path.dirname | 获取路径的目录名 |
path.extname | 获得路径的扩展名 |
resolve 解决
const fs=require('fs')
const path=require('path')
//之前的情况
fs.writeFileSync("之前的情况:",__dirname+'/index.html','love')
//打印输出路径
console.log(__dirname+'/index.html')
//resolve解决 第二个参数必须是相对路径,不能是绝对路径
console.log("path的resolve解决:",path.resolve(__dirname, './index.html'));
console.log("也可以这么写:",path.resolve(__dirname,'index.html'));
console.log("不能这么写,否则:",path.resolve(__dirname,'/index.html')) // /index.html 是绝对路径
console.log("往后拼接也会变成:",path.resolve(__dirname,'/index.html','./test.html'))
文件列表:
sep 分隔符
//sep
const path=require('path')
console.log(path.sep); //Windows电脑 :\ Linux :/
parse 方法
__filename 文件的绝对路径
//parse
const path=require('path') //__dirname 全局变量
console.log(__filename) //__filename 文件的绝对路径
const str='F:\\nodejs-learning\\2-path模块\\1-path.js'
console.log(path.parse(str))
其他的几个方法
//basename
const path=require('path')
const str='F:\\nodejs-learning\\2-path模块\\1-path.js'
console.log(path.basename(str));
//dirname
console.log(path.dirname(str));
//extname
console.log(path.extname(str));
HTTP协议
HTTP(hypertext transport protocol)协议;中文叫超文本传输协议
互联网应用最广泛的协议之一
协议:双方必须共同遵从的一组约定
http报文
安装fiddler软件
配置fiddler
点击完后,选择OK
重新启动fiddler
然后为了更好的监听浏览器请求,将所有进程选择浏览器进程
使用fiddler
在浏览器输入百度网址,并按下回车,fiddler出现的是按下回车之后的所有请求。
请求报文结构
整体
请求行
请求方法
URL
HTTP版本号
请求头
key:value的格式
详细参考网站: HTTP标头
请求体
请求百度网站时候:
请求体的内容格式是非常灵活的,可以设置任意内容
JSON格式的数据或者是GET参数形式的数据等方式
响应报文结构
整体
响应行
响应状态码
响应状态的描述
HTTP响应状态码查阅:链接
响应头
不懂的也可在mdn上查到(与请求头查询链接一致)
响应体
响应体的内容格式是非常灵活的,常见的响应体格式有:
1.HTML
2.CSS
3.JavaScript
4. 图片
5. 视频
6. JSON
百度的响应体是HTML