Node.js day-01
01.Node.js 讲解
什么是 Node.js,有什么用,为何能独立执行 JS 代码,演示安装和执行 JS 文件内代码
-
Node.js 是一个独立的 JavaScript 运行环境,能独立执行 JS 代码,因为这个特点,它可以用来编写服务器后端的应用程序
-
Node.js 作用除了编写后端应用程序,也可以对前端代码进行压缩,转译,整合等等,提高前端开发和运行效率
-
Node.js 基于Chrome V8 引擎封装,独立执行 JS 代码,但是语法和浏览器环境的 V8 有所不同,没有 document 和 window 但是都支持 ECMAScript 标准的代码语法
-
想要得到 Node.js 需要把这个软件安装到电脑,在素材里有安装程序(window 和 mac 环境的)参考 PPT 默认下一步安装即可
-
Node.js 没有图形化界面,需要使用 cmd 终端命令行(利用一些命令来操控电脑执行某些程序软件)输入,node -v 检查是否安装成功
/*** 目标:编写 js 代码,用 node 命令执行* 终端作用:敲击命令,调用对应程序执行* 终端打开:目标文件->右键->在集成终端中打开* 命令:node xxx.js (注意路径)*/
for (let i = 0; i < 3; i++) {console.log(i)
}
02.fs模块 读写文件
-
模块:类似插件,封装了方法和属性供我们使用
-
fs 模块:封装了与本机文件系统进行交互的,方法和属性
/*** 目标:使用 fs 模块,读写文件内容* 语法:* 1. 引入 fs 模块* 2. 调用 writeFile 写入内容* 3. 调用 readFile 读取内容*/
const fs = require('fs') // 引入 fs 模块fs.readFile('./text.txt',(err,data)=>{ // 调用 readFile 读取内容 data 是文件内容的 Buffer 数据流if (err) {console.log(err) } else {// 读取出来的数据默认是Buffer数据流,得toString()转成字符串,用户能看懂console.log(data.toString()) }
})
// fs.writeFile('写入的文件','写入的内容',回调函数(err))
// 写入的数据,新的替换旧的 会覆盖原文件的所有内容;没有这个文件则自动创建这个文件
fs.writeFile('./text11.txt','我是鸿蒙6期的~~~',err=>{ // 写入内容console.log('恭喜写入成功')
})
03.path 模块(绝对路径)
- Node.js 执行 JS 代码时,代码中的路径都是以终端所在文件夹出发查找相对路径,而不是以我们认为的从代码本身出发,会遇到问题,所以在 Node.js 要执行的代码中,访问其他文件,建议使用绝对路径
- path模块内置变量
__dirname
配合 path.join() 来得到绝对路径使用
/*** 目标:读取 test.txt 文件内容* 注意:代码中,使用绝对路径* 原因:Node.js 执行时会以终端所在文件夹作为相对路径,去拼接代码中路径使用(导致找不到目标文件)* 解决:使用 path.join() 和 __dirname 来填写要查找的目标文件绝对地址*/const fs = require('fs')
const path = require('path') // 引入path模块
fs.readFile(path.join(__dirname,'..','text.txt'),(err,data)=>{ // 读取if (err) {console.log(err) } else {console.log(data.toString()) }
})
04.案例 压缩前端的html
/*** 目标一:压缩 html 里代码* 需求:把 public/index.html 里的,回车/换行符去掉,写入到 dist/index.html 中* 1.1 读取 public/index.html 内容* 1.2 使用正则替换内容字符串里的,回车符\r 换行符\n* 1.3 确认后,写入到 dist/index.html 内*/
// 读取public里面的index.html→格式化压缩→压缩完的代码写入到dist里面的newIndex.html
// 读取文件fs模块+路径path
const fs = require('fs')
const path = require('path')
// 读取原html文件
// fs.readFile(文件,回调函数)
fs.readFile(path.join(__dirname, 'public', 'index.html'), (err, data) => {if (err) console.log(err)// else console.log(data.toString()) const htmlStr = data.toString() // 代码→去掉回车换行\r\n→用正则找到\r\n替换成空字符const newStr = htmlStr.replace(/[\r\n]/g, '') // g表示替换所有的\r\nconsole.log(newStr)// 写入到新的html文件// fs.writeFile(文件路径,要写入的内容,回调函数)fs.writeFile(path.join(__dirname, 'dist', 'newIndex.html'), newStr, (err) => {if (err) console.log(err)else console.log('恭喜,压缩成功')})
})
05.案例 压缩前端的js(压缩 js 里代码,并整合到 html 中一起运行)
/*** 目标二:压缩 js 里代码,并整合到 html 中一起运行* 2.1 读取 public/index.js 内容* 2.2 使用正则替换内容字符串里的,回车符\r 换行符\n 打印语句console.log('xxx');* 2.3 确认后,拼接 html 内容写入到 dist/index.html 内*/
const fs = require('fs')
const path = require('path')
// 读取html文件
fs.readFile(path.join(__dirname, 'public', 'index.html'), (err, data) => {if (err) console.log(err)// else console.log(data.toString())const htmlStr = data.toString()const newStr = htmlStr.replace(/[\n\r]/g, '') //已经去掉\r\n的html代码// console.log(newStr) // 读取html成功// 读取js代码fs.readFile(path.join(__dirname, 'public/index.js'), (err, data) => {if (err) console.log(err)// else console.log(data.toString())// 有script标签再放js代码const myjs = data.toString()//代码→去掉\r\n;去掉log输出→把html和js拼一起写入到新html文件const jsStr = myjs.replace(/[\r\n]/g, '').replace(/console.log\('.+?'\);/g, '')// console.log(jsStr) const newjs = `<script>${jsStr}</script>` //带script标签的js// 把html文件和js一起写到其他文件夹// fs.writeFile(文件路径,写入的内容,回调函数)把html代码和js代码凭借到一起fs.writeFile(path.join(__dirname, './dist/new.html'), newStr + newjs, (err) => {if (err) console.log(err)else console.log('成功')})})
})
06.URL 端口号
/*** 目标:了解端口号的作用* 端口号:用于区分服务器中的不同服务程序* 取值范围:0-65535* 注意:0-1023 和一些特定端口号是被占用的,我们自己编写服务程序请避开使用* 1. URL 是统一资源定位符,简称网址,用于访问网络上的资源2. 端口号的作用:标记服务器里对应的服务程序,值为(0-65535 之间的任意整数)3. 注意:http 协议,默认访问的是 80 端口4. Web服务:一个程序,用于提供网上信息浏览功能5. 注意:0-1023 和一些特定的端口号被占用,我们自己编写服务程序请避开使用 * * */
07.http模块-创建Web服务
/*** 目标:使用 http 模块,创建 Web 服务* Web服务:一个程序,用于提供网上信息浏览服务* 步骤:* 1. 引入 http 模块,创建 Web 服务对象* 2. 监听 request 事件,对本次请求,做一些响应处理* 3. 启动 Web 服务监听对应端口号* 4. 运行本服务在终端,用浏览器访问 http://localhost:3000/ 发起请求(localhost 是本机域名)* 注意:终端里启动了服务,如果想要终止按 ctrl c 停止即可*/
// 1.引入 http 模块,创建 Web 服务对象
const http = require('http')
// 创建web服务
const server = http.createServer()
// 发请求,返回响应结果
// server.on('request事件',回调函数)
server.on('request',(req,res)=>{// 设置响应头,内容类型,普通 html 文本:编码格式为 utf-8res.setHeader('Content-Type','text/html;charset=utf-8')res.end('你好,欢迎访问')// res.end('hallo')
})// 启动 Web 服务监听对应端口号
// server.listen(端口号,回调函数)
server.listen(6656,()=>{console.log('web 服务已启动')})
08.web服务 - 支持中文字符
/*** 目标:Web 服务支持中文字符* 问题:返回响应内容为,中文字符,浏览器无法正确显示* 原因:Web 服务没有设置响应头,指定说明内容类型和编码格式* 解决:设置响应头内容类型,让请求方能正确解析* 语法:res.setHeader('Content-Type', 'text/html;charset=utf-8')*/const http = require('http')
const server = http.createServer()
server.on('request', (req, res) => {res.end('你好,亲爱的世界')
})
server.listen(3000, () => {console.log('Web 服务启动了')
})
09.案例 - 省份列表接口
/*** 目标:基于 Web 服务,开发-省份列表数据接口* 步骤:* 1. 创建 Web 服务* 2. 使用 req.url 获取请求的资源路径,读取 json 文件数据返回* 3. 其他请求的路径,暂时返回不存在的提示* 4. 运行 Web 服务,用浏览器请求地址查看效果*/
const fs = require('fs')const http = require('http')
const path = require('path')// 创建web服务
const server = http.createServer()// 3.发请求,监听请求,返回响应结果
server.on('request',(req,res)=>{
if(req.url ==='/api/provin'){// console.log('查询地址成功') // 读取json文件里面的内容,响应给用户→ 中文 → 支持中文 → 设置响应头内容类型fs.readFile(path.join(__dirname,'data/province.json'),(err,data)=>{res.setHeader('content-type','application/json;charset=utf-8')res.end(data.toString()) //响应给用户})
}else{// console.log('请求地址错误,查无此地址')res.setHeader('content-type','text/html;charset=utf-8')res.end('不好意思,您访问的资源不存在') //响应给用户
}
})// 4.监听某个端口号
server.listen(3333,()=>{console.log('服务器启动成功')})
10.案例 - 城市列表接口
/*** 目标:基于 Web 服务,开发-城市列表数据接口* 步骤:* 1. 判断 req.url 资源路径+查询字符串,路径前缀匹配/api/city* 2. 借助 querystring 模块的方法,格式化查询参数字符串* 3. 读取 city.json 城市数据,匹配省份名字下属城市列表* 4. 返回城市列表,启动 Web 服务测试*/
const fs = require('fs')
const path = require('path')
const http = require('http')
// const { queryObjects } = require('v8')
const qs = require('querystring')
// 创建web服务
const server = http.createServer()// 03.发请求监听请求,返回响应结果
server.on('request',(req,res)=>{//判断条件-url是否以/api/city开头→是以这个开头的,拿到pname的值,去查找数据if(req.url.startsWith('/api/city')){console.log('地址正确')const str =req.url.split('?')[1]const pname = qs.parse(str).pname// console.log(pname)fs.readFile(path.join(__dirname,'data/city.json'),(err,data)=>{const result = JSON.parse(data.toString())[pname] // 数组,不能直接返回数组,返回jsonres.setHeader('content-type','application/json;charset=utf-8')res.end(JSON.stringify(result))})}else{res.setHeader('content-type','application/json;charset=utf-8')res.end('资源不存在')}
})// 04.监听某个端口
server.listen(3333,()=>{console.log('服务启动成功')})
11.案例-浏览时钟
/*** 目标:编写 web 服务,监听请求的是 /index.html 路径的时候,返回 dist/index.html 时钟案例页面内容* 步骤:* 1. 基于 http 模块,创建 Web 服务* 2. 使用 req.url 获取请求资源路径,并读取 index.html 里字符串内容返回给请求方* 3. 其他路径,暂时返回不存在提示* 4. 运行 Web 服务,用浏览器发起请求*/
const http = require('http')
const fs = require('fs')
const path = require('path')
// 创建web服务
const server = http.createServer()// 发请求监听请求,返回响应结果
server.on('request',(rep,res)=>{if(rep.url === '/index.html'){fs.readFile(path.join(__dirname,'dist/index.html'),(err,data)=>{res.setHeader('content-type','text/html;charset=utf-8')res.end(data.toString())})}else{res.setHeader('content-type','text/html;charset=utf-8')res.end('访问的资源不存在')}
})//
server.listen(3333,()=>{console.log('服务启动成功')
})
相关文章:
Node.js day-01
01.Node.js 讲解 什么是 Node.js,有什么用,为何能独立执行 JS 代码,演示安装和执行 JS 文件内代码 Node.js 是一个独立的 JavaScript 运行环境,能独立执行 JS 代码,因为这个特点,它可以用来编写服务器后端…...
OpenCV相机标定与3D重建(25)计算两个三维点集之间的最优仿射变换矩阵(3x4)函数estimateAffine3D()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算两个3D点集之间的最优仿射变换。 它计算 [ x y z ] [ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ] [ X Y Z ] [ b 1 b 2 b 3 ] \beg…...
SQL 中 INNER JOIN 和 LEFT JOIN 的区别和用法
在数据库语言 SQL 中,连接 (也称进行表结合操作)是一种常见的操作,用于将多个数据表格核实关联进行查询。常见的连接类型中, INNER JOIN 和 LEFT JOIN 是最基本且最常用的。下面将给出完整的区别和用法说明。 1. 基本概念 INNER JOIN (内连…...
【计算机网络】lab2 Ethernet(链路层Ethernet frame结构细节)
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀各种软件安装与配置_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. …...
2024 年 MySQL 8.0.40 安装配置、Workbench汉化教程最简易(保姆级)
首先到官网上下载安装包:http://www.mysql.com 点击下载,拉到最下面,点击社区版下载 windows用户点击下面适用于windows的安装程序 点击下载,网络条件好可以点第一个,怕下着下着断了点第二个离线下载 双击下载好的安装…...
提升PHP技能:18个实用高级特性
掌握PHP基础知识只是第一步。 深入了解这18个强大的PHP特性,将显著提升您的开发效率和代码质量。 1、超越 __construct() 的魔法方法 虽然 __construct() 为大多数开发者所熟知,PHP 却提供了更多强大的魔术方法,例如: class Da…...
QT数据库(三):QSqlQuery使用
QSqlQuery 简介 QSqlQuery 是能运行任何 SQL 语句的类,如 SELECT、INSERT、UPDATE、DELETE 等 SQL 语句。所以使用 QSqlQuery 几乎能进行任何操作,例如创建数据表、修改数据表的字段定义、进行数据统计等。如果运行的是 SELECT 语句,它查询…...
【机器学习】在向量的流光中,揽数理星河为衣,以线性代数为钥,轻启机器学习黎明的瑰丽诗章
文章目录 线性代数入门:机器学习零基础小白指南前言一、向量:数据的基本单元1.1 什么是向量?1.1.1 举个例子: 1.2 向量的表示与维度1.2.1 向量的维度1.2.2 向量的表示方法 1.3 向量的基本运算1.3.1 向量加法1.3.2 向量的数乘1.3.3…...
设计模式详解(十一):模板方法——Template Method
Template Method 设计模式 1. 概述 Template Method 是一种行为设计模式,它定义了一个算法的框架,并允许子类在不改变算法结构的前提下重新定义算法中的某些步骤。 在 Template Method 模式中: 父类(抽象类)定义了…...
使用 DeepSpeed 微调 OPT 基础语言模型
文章目录 OPT 基础语言模型Using OPT with DeepSpeedmain.py 解析1、导入库和模块2、解析命令行参数3、main 函数3.1 设备与分布式初始化3.2 模型与数据准备3.3 定义评估函数3.4 优化器与学习率调度器设置3.5 使用 deepspeed 进行模型等初始化3.6 训练循环3.7 模型保存 4、dsch…...
DPDK用户态协议栈-TCP Posix API 2
tcp posix api send发送 ssize_t nsend(int sockfd, const void *buf, size_t len, __attribute__((unused))int flags) {ssize_t length 0;void* hostinfo get_host_fromfd(sockfd);if (hostinfo NULL) {return -1;}struct ln_tcp_stream* stream (struct ln_tcp_stream…...
打造微信小程序中的视频播放交互体验:videoUI组件库实战
本文还有配套的精品资源,点击获取 简介:本项目介绍如何利用 videoUI 组件库在微信小程序中实现视频切换播放和全屏播放功能。涵盖微信小程序开发基础、 <video> 组件使用、视频切换逻辑、全屏播放实现以及 videoUI 库的应用。为开发者提供…...
Django REST framework(DRF)在处理不同请求方法时的完整流程
文章目录 一、POST 请求创建对象的流程二、GET 请求获取对象列表的流程三、GET 请求获取单个对象的流程四、PUT/PATCH 请求更新对象的流程五、自定义方法的流程自定义 GET 方法自定义 POST 方法 一、POST 请求创建对象的流程 请求到达视图层 方法调用: dispatch说明…...
【Hive】-- hive 3.1.3 伪分布式部署(单节点)
1、环境准备 1.1、版本选择 apache hive 3.1.3 apache hadoop 3.1.0 oracle jdk 1.8 mysql 8.0.15 操作系统:Mac os 10.151.2、软件下载 https://archive.apache.org/dist/hive/ https://archive.apache.org/dist/hadoop/ 1.3、解压 tar -zxvf apache-hive-4.0.0-bin.tar…...
unity 雷达
unity 雷达 首先去商店下载TouchScript插件 导入的时候勾选Enable TUIO 然后把预制体Cursors和TouchManager拖上 最后把TuioInput这个脚本挂上 脚本上的端口号尽量不改...
Visual Studio 2022 安装和管理 GitHub Copilot
🎀🎀🎀【AI辅助编程系列】🎀🎀🎀 Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码Visual Studio 安装和管理 GitHub CopilotVisual Studio 使用 GitHub Copilot 扩展Visual Studio 使用 GitHu…...
Python从0到100(七十三):Python OpenCV-OpenCV实现手势虚拟拖拽
前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能…...
利用notepad++删除特定关键字所在的行
1、按组合键Ctrl H,查找模式选择 ‘正则表达式’,不选 ‘.匹配新行’ 2、查找目标输入 : ^.*关键字.*\r\n (不保留空行) ^.*关键字.*$ (保留空行)3、替换为:(空) 配置界面参考下图: …...
Alan Chhabra:MongoDB AI应用程序计划(MAAP) 为客户提供价值
MongoDB全球合作伙伴执行副总裁 Alan Chhabra 每当有人向我问询MongoDB,我都会说他们很可能在不觉之间已经与MongoDB有过交集。事实上,包括70%财富百强在内的许多世界领先企业公司都在使用MongoDB。我们在MongoDB所做的一切都是为了服务客户,…...
FFmpeg 实战解复用与复用
FFmpeg FFmpeg 是一个功能强大、广泛使用的多媒体处理工具,可以处理音频、视频、字幕以及多种容器格式的操作。它支持解码、编码、复用、解复用、流式传输、过滤等功能。以下是关于 FFmpeg 的一些核心信息和操作说明: 核心组件 FFmpeg 是由以下几个主要库组成的: libavcode…...
数据结构(顺序表)JAVA方法的介绍
前言 在 Java 中,集合类(Collections)是构建高效程序的核心组件之一,而 List 接口作为集合框架中的重要一员,是一个有序、可重复的元素集合。与 Set 接口不同,List 保证了元素的顺序性,并允许存…...
电商商品详情API接口(item get)数据分析上货
电商商品详情API接口(item get)在数据分析与商品上货方面发挥着重要作用。以下是对这两个方面的详细探讨: 一、数据分析 数据源获取: 商品详情API接口提供了丰富的数据源,包括商品的标题、价格、库存、描述、图片、用…...
supervisor使用详解
0、介绍 supervisor 是一个用 Python 编写的客户端/服务器系统,它允许用户在类 UNIX 操作系统(如 Linux)上监控和控制进程。supervisor 并不是一个分布式调度框架,而是一个进程管理工具,它可以用来启动、停止和重启程…...
结合开源低代码-microi吾码 阿里云建桶,以及minio文件转移阿里云oss
前言 最近在工作中,碰到一开始一个小程序的照片和视频都放在公司的minio服务器上存储。但日积月累的,而且这个客户的访问量也大,照片和视频每天的存储空间也很大,这每天也是比不菲的费用,而且也会加慢后台的访问速度。…...
如何为IntelliJ IDEA配置JVM参数
在使用IntelliJ IDEA进行Java开发时,合理配置JVM参数对于优化项目性能和资源管理至关重要。IntelliJ IDEA提供了两种方便的方式来设置JVM参数,以确保你的应用程序能够在最佳状态下运行。本文将详细介绍这两种方法:通过工具栏编辑配置和通过服…...
关于SQL注入的面试题及经验分享
Q:简述数据库的存储引擎 A:数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不…...
ISP(Image Signal Processor)——HDR技术总结
传统多帧融合技术 拍摄一系列不同曝光时长的图像帧(LDR),然后使用融合算法进行融合成HDR图像。 融合算法可以分为两种 基于照度图估计的融合 基于照度估计需要拟合相机响应函数,详细可以参考如下论文: Recovering H…...
Python字符串及正则表达式(十):字符串常用操作、字符串编码转换
前言:在编程的世界里,字符串无处不在。它们是构建用户界面、存储数据、进行通信的基础元素。无论是财务系统的总账报表、电子游戏的比赛结果,还是火车站的列车时刻表,这些信息最终都需要以文本的形式呈现给用户。这些文本的背后&a…...
测试工程师八股文04|计算机网络 和 其他
一、计算机网络 1、http和https的区别 HTTP和HTTPS是用于在互联网上传输数据的协议。它们都是应用层协议,建立在TCP/IP协议栈之上,用于客户端(如浏览器)和服务器之间的通信。 ①http和https的主要区别在于安全性。http是一种明…...
Codeforces Global Round 27的C题
题目大意 给定一个n,n>5 ans0 ans&a1|a2&a3|a4&a5...an,数组a是一个排列 下标是奇数让ans对其进行&操作,否则进行|操作,求ans能达到的最大值. 分奇偶来讨论,在n为奇数的情况下,最后一次操作是|,在n为偶数的情况下,最后一次操作是&. n二进制最高位的计算…...
【Linux】Nginx一个域名https一个地址配置多个项目【项目实战】
👨🎓博主简介 🏅CSDN博客专家 🏅云计算领域优质创作者 🏅华为云开发者社区专家博主 🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入!…...
第36次CCF计算机软件能力认证 梦境巡查
梦境巡查 刷新 时间限制: 1.0 秒 空间限制: 512 MiB 相关文件: 题目目录 题目背景 传说每当月光遍布西西艾弗岛,总有一道身影默默守护着居民们的美梦。 题目描述 梦境中的西西艾弗岛由 �1n1 个区域组成。梦境…...
[机器学习]AdaBoost(数学原理 + 例子解释 + 代码实战)
AdaBoost AdaBoost(Adaptive Boosting)是一种Boosting算法,它通过迭代地训练弱分类器并将它们组合成一个强分类器来提高分类性能。 AdaBoost算法的特点是它能够自适应地调整样本的权重,使那些被错误分类的样本在后续的训练中得到…...
传统零售商商业升级的核心动机及与互联网业务融合的探索——以 AI 智能名片 S2B2C 商城小程序源码为例
摘要:本文旨在探讨传统零售商尝试商业升级的核心动机,并以 AI 智能名片 S2B2C 商城小程序源码为典型案例,分析互联网业务模式如何助力传统零售商转型。通过剖析传统零售增长模式的局限以及互联网业务在增长速度、迭代试错和用户需求洞察方面的…...
飞牛 fnos docker镜像部署OpenSpeedtest宽带网速测试教程
penSpeedTest是一个跨平台的网络测速应用,支持不同操作系统的浏览器,无需安装额外软件或插件。您可以在iPhone、iPad、Android设备、Windows和Linux系统的电脑、手机和平板上直接测试设备与NAS之间的宽带速度。 通过这个可以排查出设备与NAS之间的传输速…...
【C++】list
OK,最近浅浅学习了STL的list,有兴趣不妨垂阅! 目录 1.constructor 2.assign 3.insert 4.erase 5. reverse 6.swap 7.merge 8.unique 9.splice 10.小知识 同样的,使用list 需要包含一个头文件<list>。<list&g…...
keepalive的高可用集群
一、keepalived概述 1.keepalive的工作原理 keepalive是专门为了lvs集群开发出来的,但是适用场景不仅仅局限于lvs。而且keepalive为后台的真实服务器做了一个健康检查,当服务不可用时,会自动的移除ipvs的转发策略,服务恢复时&…...
HTTP 协议报文结构 | 返回状态码详解
注:本文为 “HTTP 历史 | 协议报文结构 | 返回状态码” 相关文章合辑。 未整理去重。 HTTP 历史 wangjunliang 最后更新: 2024/3/16 上午10:29 超文本传输协议(英语:HyperTextTransferProtocol,缩写:HTTP)是 万维网(World Wide Web)的基础协议。自 蒂姆…...
如何保证开源AI呼入机器人和AI呼出机器人的服务质量?
如何保证开源AI呼入机器人和AI呼出机器人的服务质量? 确保开源AI呼入机器人和AI呼出机器人的服务质量是企业成功部署这些智能系统的关键。高质量的服务不仅能够提高客户满意度,还能增强企业的市场竞争力。以下是实现这一目标的几个关键策略和技术措施&a…...
C++day7
#include <iostream>using namespace std; template <class T> class mylist{ public:struct Link{T val;Link* next;Link* front;};//增void insert(T val);//删void remove(T val);//改mylist& operator[](int index);//排序void Sort();//遍历void show();/…...
docker搭建Redis集群及哨兵(windows10环境,OSS Cluster)
一、基本概念 Redis:即 "Remote DIctionary Server" ,翻译为“远程字典服务器”。从字面意义上讲,它指的是一个远程的字典服务,意味着它是一个可以远程访问的服务,主要用于存储键值对(key-value pairs&…...
第8章 搬移特性
8.1 搬移函数 模块化是优秀软件设计的核心所在,好的模块化能够让我在修改程序时只需理解程序的一小部分。为了设计出高度模块化的程序,我得保证互相关联的软件要素都能集中到一块,并确保块与块之间的联系易于查找、直观易懂。同时,…...
[IT项目管理]项目时间管理(本章节3w字爆肝)
七.项目时间管理 7.1 项目进度的重要性 为什么要重视项目进度:在项目进行的过程之中会遇到变故。但是不论项目中发生了什么,时间总是在流逝,就可能会导致项目不可以在规定的时间完成。 7.2可能影响项目进度的因素 有员工离职个人的工作方…...
k8s中设置annotation的方法总结
k8s中设置annotation的方法总结 annotation是什么 在 Kubernetes 中,Annotations 是一种用于向 Kubernetes 对象附加非标识性元数据的机制。 annotation有什么用 annotation与 Labels 类似,但有一些关键区别和特定用途。 常用于存储与对象相关的配置…...
第19天:信息收集-Web应用源码获取闭源备份开发泄漏WebPack打包资源搜索ICO定位
#知识点 1、信息收集-Web应用-源码获取-已知指纹&未知指纹 2、信息收集-Web应用-源码获取-泄漏问题&发现指纹 一、参考文章: https://www.secpulse.com/archives/124398.html https://mp.weixin.qq.com/s/QgLDdaefXlZtvlSiFQShZw 二、源码泄漏原因ÿ…...
uniapp小程序的锚点定位(将页面滚动到目标位置)
小程序中,a页面跳转到b页面,跳转后滚动定位到b页面的特定位置。 1.uni.pageScrollTo传递一个scrollTop参数可以滚动到特定位置。2.可以通过 uni.createSelectorQuery()等获取定位元素的位置信息。3.uni.getSystemInfoSync()获取设备的导航栏和状态栏高度…...
py脚本部署到服务器定时启动
py脚本部署到服务器定时启动 一、准备好你的脚本二、把脚本放到服务器三、在服务器创建脚本所需要的环境1、安装 Miniconda(如果不想安装 Anaconda 或 Miniconda,可以直接使用 Python 的venv模块创建虚拟环境,但安装 Conda 会更方便管理不同版…...
相机不动,机构动作----Hands Eyes
最近在研究 手眼标定,发现大家都需付费,搞啥子,说好的开源。。。 以相机在上固定不动,机械手为 EPSON_Robot 为例,详细的一步一步实例操作指引 EPSON_Robot 的192.168.0.1 2004 Server 详细操作步骤 1. 启动程序 运…...
Jdk1.7到Jdk1.8 HashMap 发生了什么变化(底层)
从JDK 1.7到JDK 1.8,HashMap在底层实现上发生了显著的变化, 主要体现在数据结构、链表插入方式、哈希算法、扩容机制以及并发性方面。 以下是具体的变化点: 1. 数据结构的变化 JDK 1.7:HashMap的底层数据结构是数组单向链表。…...
微积分复习笔记 Calculus Volume 2 - 4.2 Direction Fields and Numerical Methods
4.2 Direction Fields and Numerical Methods - Calculus Volume 2 | OpenStax...