Nodejs基础4之fs模块的批量重命名练习、path模块、HTTP协议

Nodejs基础

  • fs模块
    • fs练习-批量重命名
    • fs练习-批量排序重命名
  • path模块
    • resolve 解决
    • sep 分隔符
    • parse 方法
    • 其他的几个方法
  • HTTP协议
    • http报文
      • 安装fiddler软件
      • 配置fiddler
      • 使用fiddler
    • 请求报文结构
      • 整体
      • 请求行
        • 请求方法
        • URL
        • HTTP版本号
      • 请求头
      • 请求体
    • 响应报文结构
      • 整体
      • 响应行
        • 响应状态码
        • 响应状态的描述
      • 响应头
      • 响应体

fs模块

fs练习-批量重命名

基础练习

  1. 编写一个 JS 文件,实现复制文件的功能
  2. 文件重命名
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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/351872.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用甘特图有效管理多个项目进度

当公司或组织同时承担多个项目时,合理规划各项目的时间节点与资源分配对确保高效完成至关重要。采用甘特图可以直观地展示多个项目的时间进程、关键里程碑以及资源分配情况,便于从宏观层面全面把控各项目的动态。 在线甘特图软件 zz-plan.com 提供了非常强大的时间轴规划功能,支…

14、Kafka ------ kafka 核心API 之 流API(就是把一个主题的消息 导流 到另一个主题里面去)

目录 kafka 核心API 之 流APIKafka流API的作用&#xff1a;流API的核心API&#xff1a;使用流API编程的大致步骤如下&#xff1a;代码演示 流API 用法MessageStream 流API 代码演示消息从 test1主题 导流到 test2主题演示使用匿名内部类对消息进行处理Topology 拓扑结构 讲解 代…

程序员该懂的一些测试(二)单元测试与集成测试

集成测试才是目的 单元测试只是对每个小模块进行的测试&#xff0c;可以理解成每次提交的一个小功能。 最终系统的良好运行依赖于这些小模块之间良好协作。所以需要有集成测试 集成测试回滚数据&#xff0c;保证测试的可重复性 我们可以把 ApplicationContext 理解成 DI 容器…

Transformer and Pretrain Language Models3-6

Pretrain Language Models预训练语言模型 content&#xff1a; language modeling&#xff08;语言模型知识&#xff09; pre-trained langue models(PLMs&#xff09;&#xff08;预训练的模型整体的一个分类&#xff09; fine-tuning approaches GPT and BERT&#xff08;…

【探索科技 感知未来】文心一言大模型

【探索科技 感知未来】文心大模型 &#x1f6a9;本文介绍 文心一言大模型是由中国科技巨头百度公司研发的一款大规模语言模型&#xff0c;其基于先进的深度学习技术和海量数据训练而成。这款大模型具备强大的自然语言处理能力&#xff0c;可以理解并生成自然语言&#xff0c;为…

JVM-字节码应用

一、字节码的应用远超你的想象 二、ASM介绍与读取字节码实战 用CoreAPI解析和TreeAPI都能做字节码解析&#xff0c;区别&#xff0c;TreeAPI必须读取完整字节码信息&#xff0c;才能做解析。 下面代码&#xff0c;使用CoreAPI做解析&#xff1a; package asm;public class MyM…

leetcode.2846. 边权重均等查询【lca+树形dp】

原题链接&#xff1a;2846. 边权重均等查询 题目描述&#xff1a; 现有一棵由 n 个节点组成的无向树&#xff0c;节点按从 0 到 n - 1 编号。给你一个整数 n 和一个长度为 n - 1 的二维整数数组 edges &#xff0c;其中 edges[i] [ui, vi, wi] 表示树中存在一条位于节点 ui …

微服务-微服务Alibaba-Nacos注册中心实现

1. 系统架构的演变 俗话说&#xff0c; 没有最好的架构&#xff0c;只有最合适的架构。 微服务架构也是随着信息产业的发展而出现的最有普 遍适用性的一套架构模式。通常来说&#xff0c;我们认为架构发展历史经历了这样一个过程&#xff1a;单体架构——> 垂直架构 ——&g…

leetcode 42.接雨水

问题1&#xff1a;怎么算接水量 总的接水量第一列接水量第二列接水量第三列接水量…最后一列接水量 问题2&#xff1a;当前列的接水量怎么计算 当前的接水量min(当前列左边最高的墙x1&#xff0c;当前列右边最高的墙x3&#xff09;- 当前列x2的高度 问题2图解&#xff1a; …

蓝桥杯-sort排序(上)

sort排序 &#x1f388;1.算法说明&#x1f388;2.例题&#x1f52d;2.1例题一&#x1f52d;2.2例题二&#x1f52d;2.3例题三&#x1f52d;2.4例题四&#x1f52d;2.5例题五&#x1f52d;2.6例题六 &#x1f388;1.算法说明 &#x1f50e;对于一个数组&#xff0c;通过对数组中…

新版UI界面影视小程序亲测无问题带详细搭建教程

新版UI界面影视小程序亲测无问题带详细搭建教程 环境php7.0 — fileinfo–redis–sg11 mysql5.5 apache2.4 添加站点php7.0—-创建ftp—-上传后端文件《后端文件修改&#xff0c;/maccms/wxapi/config/dbs.php–修改当前数据库》—-设置ssl—-打开数据库安装cms 安装好后管…

如何写出有效的单元测试?

什么是单元测试 《单元测试的艺术》中对单元测试的定义&#xff1a; 一个单元测试是一段自动化的代码&#xff0c;这段代码调用被测试的工作单元&#xff0c;之后对这个单元的单个最终结果的某些假设进行校验。 单元测试几乎都是用单元测试框架编写的&#xff1b;只要产品代码…

免费数据恢复软件,帮你轻松恢复丢失数据!

“由于我经常会丢失各种文件&#xff0c;因此非常需要一款实用又有效的数据恢复软件&#xff0c;大家有什么推荐的吗&#xff1f;希望能给我出出主意&#xff01;” 随着数字技术的不断发展&#xff0c;数据恢复软件在我们的生活中扮演着越来越重要的角色。当我们的硬盘或其他存…

Bluetooth Device Address(BD_ADDR) - 2

蓝牙核心规范&#xff1a;Core v5.3中关于蓝牙地址的其他说明 Vol 3: Host, Part C: Generic Access Profile 3 User interface aspects 3.2 Representation of Bluetooth parameters 3.2.1 Bluetooth Device Address (BD_ADDR) BD_ADDR 是蓝牙设备使用的地址。在设备发现过…

nav02 学习03 机器人传感器

机器人传感器 移动机器人配备了大量传感器&#xff0c;使它们能够看到和感知周围的环境。这些传感器获取的信息可用于构建和维护环境地图、在地图上定位机器人以及查看环境中的障碍物。这些任务对于能够安全有效地在动态环境中导航机器人至关重要。 机器人的传感器类似人的感官…

单片机学习笔记---独立按键控制LED状态

上一节学习的是独立按键控制LED亮灭 这一节我们先来讲一下按键的抖动&#xff1a; 对于机械开关&#xff0c;当机械触点断开、闭合时&#xff0c;由于机械触点的弹性作用&#xff0c;一个开关在闭合时不会马上稳定地接通&#xff0c;在断开时也不会一下子断开&#xff0c;所以…

Leetcode刷题笔记题解(C++):1971. 寻找图中是否存在路径

思路&#xff1a; 1.建立图集&#xff0c;二维数组&#xff0c;path[0]里面存放的就是与0相连的节点集合 2.用布尔数组来记录当前节点是否被访问过&#xff0c;深度优先会使用到 3.遍历从起点开始能直接到达的点&#xff08;即与起点相邻的点&#xff09;&#xff0c;判断那…

判断给定的字符串s是否为Python的保留关键字keyword.iskeyword(s)

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 判断给定的字符串s 是否为Python的保留关键字 keyword.iskeyword(s) [太阳]选择题 请问以下代码输出的结果是&#xff1f; import keyword print("【执行】keyword.iskeyword(for)"…

【蓝桥杯冲冲冲】[NOIP2000 提高组] 方格取数

蓝桥杯备赛 | 洛谷做题打卡day19 文章目录 蓝桥杯备赛 | 洛谷做题打卡day19[NOIP2000 提高组] 方格取数题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示题解代码我的一些话 [NOIP2000 提高组] 方格取数 题目背景 NOIP 2000 提高组 T4 题目描述 设有 N N…

PBM模型学习(五)UDF生长模型

DEFINE_PB_GROWTH_RATE(name, cell, thread, d_i) 该UDF在每个时间步开始时执行,只有在时间步开始时,颗粒粒径才会更新,同时才会UDF才会向文件写入数据GR单位是m/sC_PHASE DIAMETER(c,ts):返回颗粒粒径???,ts为颗粒相的线程C_VOF(cell,thread):颗粒相总体积C_PB DISCI(c…