当前位置: 首页 > news >正文

新书速览|循序渐进Node.js企业级开发实践

《循序渐进Node.js企业级开发实践》

1

本书内容

《循序渐进Node.js企业级开发实践》结合作者多年一线开发实践,系统地介绍了Node.js技术栈及其在企业级开发中的应用。全书共分5部分,第1部分基础知识(第1~3章),介绍Node.js的基础知识,包括模块化、测试等;第2部分核心编程(第4~9章),介绍Node.js的缓冲区、事件、定时、文件、进程、流等方面的处理;第3部分网络编程(第10~16章),介绍Node.js的TCP、UDP、HTTP、WebSocket、TSL/SSL、常用Web中间件、Vue.js与响应式编程等方面的内容;第4部分数据存储(第17~19章),介绍Node.js关于MySQL、MongoDB、Redis等数据存储的操作;第5部分综合应用(第20章),介绍Node.js实现即时聊天应用的完整过程。除了Node.js技术外,本书还讲述了Express、Socket.IO、Vue.js、MySQL、MongoDB、Redis等热门技术的应用。本节还精心设计了26个实战案例和43个上机练习,所有练习都提供了操作步骤,便于读者实操演练,快速上手。

2

本书作者

柳伟卫,网名老卫、waylau,在IT公司担任过项目经理、架构师、高级技术顾问等职位,拥有十余年开发经验,具有丰富的软件开发管理及系统架构经验。主导过多个省、国家级大型分布式系统的设计与研发,参与过面向全球的供应链系统服务化改造。在实际工作中,积累了大量的分布式系统、微 服务架构以及性能调优经验。业余时间创建了 waylau.com 网站,用于分享个人技术心得。喜欢开源,长期跃于各大开源社区,编著了《跟老卫学HarmonyOS开发》《Netty 实战(精髓)》等近30余本开源技术教程(见 https://waylau.com/books/),广受网友好评,是 CSDN、 开源中国、阿里云开发者、华为开发者等技术社区专家,慕课网、华为开发者联盟社区认证讲师。已出版包括《HarmonyOS应用开发入门》《分布式系统常用技术及案例分析》《Java核心编程》《轻量级Java EE企业应用开发实战》《Node.js+Express+MongoDB+Vue.js全栈开发实战》《循序渐进Spark大数据应用实践》等在内的几十本专著。

3

本书读者

《循序渐进Node.js企业级开发实践》技术新颖,实例丰富,理论讲解与代码实现相结合,既适合作为Node.js的初学者和进阶读者的自学用书,也适合作为培训机构或高校相关专业的教学用书。

4

本书目录

向上滑动阅览

目    录

第 1 章  走进Node.js的世界 1

1.1  认识Node.js 1

1.1.1  Node.js简介 1

1.1.2  Node.js的特点 2

1.2  安装Node.js及IDE 6

1.2.1  安装Node.js和npm 6

1.2.2  Node.js与npm的关系 6

1.2.3  安装npm镜像 6

1.2.4  选择合适的IDE 7

1.3  实战:第一个Node.js应用 7

1.3.1  创建Node.js应用 7

1.3.2  运行Node.js应用 7

1.3.3  小结 8

1.4  实战:在Node.js应用中使用TypeScript 8

1.4.1  创建TypeScript版本的Node.js应用 8

1.4.2  运行TypeScript应用 9

1.5  上机演练 9

1.6  本章小结 11

第 2 章  模块化 12

2.1  理解模块化机制 12

2.1.1  理解CommonJS规范 12

2.1.2  理解ECMAScript模块 14

2.1.3  CommonJS和ECMAScript模块的异同点 16

2.1.4  Node.js的模块实现 16

2.2  使用npm管理模块 18

2.2.1  使用npm命令安装模块 18

2.2.2  全局安装与本地安装 18

2.2.3  查看安装信息 19

2.2.4  卸载模块 19

2.2.5  更新模块 19

2.2.6  搜索模块 19

2.2.7  创建模块 20

2.3  核心模块 20

2.3.1  核心模块介绍 20

2.3.2  实战:核心模块fs的简单示例 20

2.4  上机演练 21

2.5  本章小结 22

第 3 章  测试 23

3.1  使用断言 23

3.1.1  什么是断言测试 23

3.1.2  严格模式和遗留模式 24

3.1.3  实战:断言的使用 25

3.1.4  了解AssertionError 27

3.1.5  实战:deepStrictEqual示例 27

3.2  第三方测试工具 29

3.2.1  Nodeunit 30

3.2.2  Mocha 31

3.2.3  Vows 31

3.3  上机演练 33

练习一:使用Node.js的断言功能进行简单的单元测试 33

练习二:使用.js的AssertionError 34

练习三:使用Node.js的第三方测试工具 34

3.4  本章小结 35

第 4 章  缓冲区 36

4.1  了解缓冲区 36

4.1.1  了解TypedArray 36

4.1.2  Buffer类 37

4.2  创建缓冲区 38

4.2.1  初始化缓冲区的API 39

4.2.2  理解数据的安全性 39

4.2.3  启用零填充 40

4.2.4  指定字符编码 40

4.3  切分缓冲区 41

4.4  连接缓冲区 42

4.5  比较缓冲区 43

4.6  缓冲区编解码 44

4.6.1  解码器和编码器 44

4.6.2  缓冲区解码 44

4.6.3  缓冲区编码 45

4.7  上机演练 46

练习一:创建缓冲区 46

练习二:切分缓冲区 46

练习三:连接缓冲区 47

练习四:缓冲区编解码 47

4.8  本章小结 48

第 5 章  事件处理 49

5.1  理解事件和回调 49

5.1.1  事件循环 50

5.1.2  事件驱动 50

5.2  事件发射器 51

5.2.1  将参数和this传递给监听器 51

5.2.2  异步与同步 52

5.2.3  仅处理事件一次 52

5.3  事件类型 53

5.3.1  事件类型的定义 53

5.3.2  内置的事件类型 54

5.3.3  error事件 54

5.4  事件的操作 56

5.4.1  实战:设置最大监听器 56

5.4.2  实战:获取已注册的事件的名称 56

5.4.3  实战:获取监听器数组的副本 57

5.4.4  实战:将事件监听器添加到监听器数组的开头 57

5.4.5  实战:移除监听器 58

5.5  上机演练 60

5.6  本章小结 61

第 6 章  定时处理 62

6.1  定时处理常用类 62

6.1.1  Immediate 62

6.1.2  Timeout 63

6.2  定时调度 64

6.2.1  setImmediate 64

6.2.2  setInterval 65

6.2.3  setTimeout 65

6.2.4  setInterval和setTimeout的异同 66

6.3  取消定时 67

6.4  上机演练 69

6.5  本章小结 70

第 7 章  文件处理 71

7.1  了解node:fs模块 71

7.1.1  同步与异步操作文件 71

7.1.2  文件描述符 73

7.2  处理文件路径 74

7.2.1  字符串形式的路径 74

7.2.2  Buffer形式的路径 74

7.2.3  URL对象的路径 75

7.3  打开文件 76

7.3.1  文件系统标志 77

7.3.2  实战:打开当前目录下的文件 78

7.4  实战:读取文件 79

7.4.1  fs.read 79

7.4.2  fs.readdir 80

7.4.3  fs.readFile 80

7.5  实战:写入文件 82

7.5.1  将buffer写入文件 82

7.5.2  将字符串写入文件 83

7.5.3  将数据写入文件 84

7.6  上机演练 85

7.7  本章小结 86

第 8 章  进程 87

8.1  执行外部命令 87

8.1.1  spawn() 87

8.1.2  exec() 89

8.1.3  execFile() 90

8.2  子进程ChildProcess 92

8.2.1  生成子进程 92

8.2.2  进程间通信 92

8.3  终止进程 94

8.4  上机演练 94

练习一:执行外部命令 94

练习二:进程间通信 95

练习三:终止进程 95

8.5  本章小结 96

第 9 章  流 97

9.1  流的概述 97

9.1.1  流的类型 97

9.1.2  对象模式 97

9.1.3  流中的缓冲区 98

9.2  可读流 98

9.2.1  stream.Readable类事件 99

9.2.2  stream.Readable类方法 101

9.2.3  异步迭代器 104

9.2.4  两种读取模式 105

9.3  可写流 105

9.3.1  stream.Writable类事件 106

9.3.2  stream.Writable类方法 107

9.4  双工流与转换流 110

9.4.1  实现双工流 110

9.4.2  实战:双工流的例子 110

9.4.3  对象模式的双工流 111

9.4.4  实现转换流 112

9.5  上机演练 112

练习一:使用可读流读取文件 112

练习二:使用可写流写入文件 113

练习三:实现一个简单的双工流 113

9.6  本章小结 114

第 10 章  TCP 115

10.1  创建TCP服务器 115

10.1.1  了解TCP 115

10.1.2  了解socket 116

10.1.3  node:net模块 117

10.1.4  实战:创建TCP服务器 117

10.2  监听连接 118

10.2.1  server.listen(handle[, backlog][, callback]) 119

10.2.2  server.listen(options[, callback]) 119

10.3  发送和接收数据 120

10.3.1  创建socket对象 120

10.3.2  创建socket对象来发送和接收数据 121

10.3.3  实战:TCP服务器的例子 121

10.4  关闭TCP服务器 122

10.4.1  socket.end() 123

10.4.2  server.close() 124

10.5  上机演练 125

练习一:创建TCP服务器 125

练习二:发送和接收数据 126

练习三:关闭TCP服务器 127

10.6  本章小结 128

第 11 章  UDP 129

11.1  创建UDP服务器 129

11.1.1  了解UDP 129

11.1.2  TCP与UDP的区别 130

11.1.3  实战:创建UDP服务器 130

11.2  监听连接 131

11.3  发送和接收数据 131

11.3.1  message事件 131

11.3.2  socket.send()方法 132

11.4  关闭UDP服务器 133

11.5  实战:UDP服务器通信 134

11.5.1  UDP服务器 134

11.5.2  UDP客户端 135

11.5.3  运行应用 135

11.6  上机演练 136

练习一:创建UDP服务器 136

练习二:发送和接收数据 137

练习三:关闭UDP服务器 137

11.7  本章小结 138

第 12 章  HTTP 139

12.1  创建HTTP服务器 139

12.1.1  使用http.Server类创建服务器 139

12.1.2  http.Server事件 140

12.2  处理HTTP的常用操作 142

12.3  请求对象和响应对象 142

12.3.1  http.ClientRequest类 142

12.3.2  http.ServerResponse类 146

12.4  REST概述 149

12.4.1  REST定义 149

12.4.2  REST设计原则 150

12.5  成熟度模型 151

12.5.1  第0级:使用HTTP作为传输方式 151

12.5.2  第1级:引入资源的概念 153

12.5.3  第2级:根据语义使用HTTP动词 153

12.5.4  第3级:使用HATEOAS 155

12.6  实战:构建REST服务 157

12.6.1  新增用户 157

12.6.2  修改用户 158

12.6.3  删除用户 159

12.6.4  响应请求 160

12.6.5  运行应用 161

12.7  上机演练 163

练习一:创建一个简单的HTTP服务器 163

练习二:实现一个简单的RESTful API服务 164

12.8  本章小结 165

第 13 章  WebSocket 166

13.1  创建WebSocket服务器 166

13.1.1  常见的Web推送技术 166

13.1.2  使用ws创建WebSokcet服务器 168

13.2  监听连接 168

13.3  发送和接收数据 169

13.3.1  发送数据 169

13.3.2  发送ping和pong 170

13.3.3  接收数据 170

13.4  准备的状态 171

13.5  关闭WebSocket服务器 171

13.6  实战:WebSocket聊天服务器 171

13.6.1  聊天服务器的需求 172

13.6.2  服务器的实现 172

13.6.3  客户端的实现 173

13.6.4  运行应用 174

13.7  上机演练 175

练习一:创建一个简单的WebSocket服务器 175

练习二:实现一个简单的聊天室功能 176

练习三:实现客户端与服务器的实时通信 177

13.8  本章小结 178

第 14 章  TLS/SSL 179

14.1  了解TLS/SSL 179

14.1.1  加密算法 179

14.1.2  安全通道 182

14.1.3  TLS/SSL握手过程 182

14.1.4  HTTPS 185

14.2  Node.js中的TLS/SSL 186

14.3  产生私钥 186

14.4  实战:构建TLS服务器和客户端 187

14.4.1  构建TLS服务器 187

14.4.2  构建TLS客户端 188

14.4.3  运行应用 189

14.5  上机演练 190

练习一:生成自签名SSL证书和私钥 190

练习二:构建TLS服务器和客户端 191

14.6  本章小结 192

第 15 章  常用Web中间件 193

15.1  Express 193

15.1.1  安装Express 193

15.1.2  实战:编写“Hello World”应用 195

15.1.3  运行“Hello World”应用 195

15.1.4  实战:使用Express构建REST API 195

15.1.5  测试Express的REST API 198

15.2  Socket.IO 201

15.2.1  Socket.IO的主要特点 201

15.2.2  安装Socket.IO 202

15.2.3  实战:编写Socket.IO服务器 203

15.2.4  实战:编写Socket.IO客户端 204

15.2.5  运行应用 205

15.3  上机演练 206

练习一:使用Express构建REST服务 206

练习二:使用Socket.IO实现一个简单的实时聊天应用 207

15.4  本章小结 209

第 16 章  Vue.js与响应式编程 210

16.1  常见UI框架Vue.js 210

16.1.1  Vue.js与jQuery的不同 210

16.1.2  Vue.js的下载和安装 212

16.1.3  实战:创建Vue.js应用 214

16.2  了解Observable机制 217

16.2.1  了解Observable的基本概念 218

16.2.2  定义观察者 218

16.2.3  执行订阅 219

16.2.4  创建Observable对象 220

16.2.5  实现多播 221

16.2.6  处理错误 223

16.3  了解RxJS技术 224

16.3.1  创建Observable对象的函数 224

16.3.2  了解操作符 225

16.3.3  处理错误 226

16.4  了解Vue.js中的reactive 227

16.5  上机演练 229

练习一:探索Vue.js与jQuery的不同 229

练习二:使用create-vue创建并运行Vue.js应用 231

练习三:理解Vue.js中的响应式和Observable机制 231

16.6  本章小结 232

第 17 章  操作MySQL 233

17.1  下载安装MySQL 233

17.1.1  下载安装包 233

17.1.2  解压安装包 233

17.1.3  创建my.ini 234

17.1.4  初始化安装 234

17.1.5  启动MySQL Server 234

17.1.6  使用MySQL客户端 235

17.1.7  关闭MySQL Server 235

17.2  MySQL的基本操作 236

17.3  实战:使用Node.js操作MySQL 237

17.3.1  安装mysql模块 237

17.3.2  实现简单的查询 239

17.3.3  运行应用 239

17.4  深入理解mysql模块 242

17.4.1  建立连接 242

17.4.2  连接选项 243

17.4.3  关闭连接 244

17.4.4  执行CURD 245

17.5  上机演练 247

练习一:安装并配置MySQL 247

练习二:使用Node.js操作MySQL进行基本数据库操作 248

练习三:深入理解mysql模块的使用 250

17.6  本章小结 251

第 18 章  操作MongoDB 252

18.1  安装MongoDB 252

18.1.1  MongoDB简介 252

18.1.2  下载和安装MongoDB 253

18.1.3  启动MongoDB服务 254

18.1.4  连接到MongoDB服务器 254

18.2  MongoDB的基本操作 255

18.2.1  显示已有的数据库 255

18.2.2  创建和使用数据库 255

18.2.3  插入文档 256

18.2.4  查询文档 259

18.2.5  修改文档 264

18.2.6  删除文档 269

18.3  实战:使用Node.js操作MongoDB 270

18.3.1  安装mongodb模块 270

18.3.2  实现访问MongoDB 272

18.3.3  运行应用 272

18.4  深入理解mongodb模块 273

18.4.1  建立连接 273

18.4.2  插入文档 273

18.4.3  查找文档 274

18.4.4  修改文档 276

18.4.5  删除文档 277

18.5  上机演练 278

练习一:安装MongoDB并连接查看数据库 278

练习二:在Node.js应用中操作MongoDB 278

练习三:深入理解Node.js中的mongodb模块操作 279

18.6  本章小结 280

第 19 章  操作Redis 281

19.1  下载和安装Redis 281

19.1.1  Redis简介 281

19.1.2  在Linux平台上安装Redis 282

19.1.3  在Windows平台上安装Redis 283

19.2  Redis的数据类型及基本操作 284

19.2.1  Redis key 284

19.2.2  Redis String 285

19.2.3  修改和查询key空间 286

19.2.4  Redis超时 287

19.2.5  Redis List 287

19.2.6  使用Redis List的第一步 288

19.2.7  List常见的用例 289

19.2.8  限制列表 289

19.3  实战:使用Node.js操作Redis 290

19.3.1  安装redis模块 290

19.3.2  实现访问Redis 291

19.3.3  运行应用 292

19.4  上机演练 293

练习一:安装Redis并测试连接 293

练习二:使用Redis存储和检索数据 293

练习三:使用Redis List实现消息队列 294

19.5  本章小结 295

第 20 章  综合实战:基于WebSocket的即时聊天应用 296

20.1  应用概述 296

20.2  实现后台服务器 297

20.2.1  初始化websocket-chat 297

20.2.2  访问静态文件资源 298

20.2.3  事件处理 299

20.3  实现前台客户端 300

20.3.1  页面HTML及样式设计 300

20.3.2  业务逻辑 302

20.4  运行效果 309

20.5  上机演练 313

练习一:初始化WebSocket聊天应用 313

练习二:配置静态文件服务和事件处理 314

练习三:完善前台客户端 315

20.6  本章小结 316

参考文献 317

5

本书特色

本文摘自《循序渐进Node.js企业级开发实践》,获出版社和作者授权发布。

循序渐进Node.js企业级开发实践——jd

相关文章:

新书速览|循序渐进Node.js企业级开发实践

《循序渐进Node.js企业级开发实践》 1 本书内容 《循序渐进Node.js企业级开发实践》结合作者多年一线开发实践,系统地介绍了Node.js技术栈及其在企业级开发中的应用。全书共分5部分,第1部分基础知识(第1~3章)&#xf…...

2024三掌柜赠书活动第三十五期:Redis 应用实例

目录 前言 Redis操作都会,却不知道怎么用? 关于《Redis 应用实例》 编辑推荐 内容简介 作者简介 图书目录 《Redis 应用实例》全书速览 拓展:Redis使用场景 实例1:缓存应用 场景描述 实现方法 具体代码示例 实例2&a…...

Android 第三方框架:RxJava:源码分析:观察者模式

文章目录 观察者模式RxJava中的观察者模式总结 ​​​​​​​​​​​​​​观察者模式​​​​​​​ RxJava中的观察者模式 以Observable、ObservableOnSubscribe、Observer为例 Observable是被观察者 负责发射事件或数据 Observer是观察器 负责对从被观察者中获取的数…...

开源模型应用落地-安全合规篇-用户输入价值观判断(四)

一、前言 在深度合规功能中,对用户输入内容的价值观判断具有重要意义。这一功能不仅仅是对信息合法性和合规性的简单审核,更是对信息背后隐含的伦理道德和社会责任的深刻洞察。通过对价值观的判断,系统能够识别可能引发不当影响或冲突的内容,从而为用户提供更安全、更和谐的…...

【js逆向专题】13.jsvmp补环境篇一

目录 一.了解jsvmp技术1. js虚拟机保护方案2.jsvmp实现原理3. 模拟jsvmp执行过程 二.环境检测1. 什么是环境检测2.案例讲解 三. 项目实战1. 案例11.逆向目标2. 项目分析1.补第一个referrer2. 调试技巧13. 调试技巧24. 补充sign5. 补 length6. 参数长短补充 3. 逆向结果 2. 案例…...

Java---每日小题

题目1-极大极小游戏 给你一个下标从 0 开始的整数数组 nums ,其长度是 2 的幂。 对 nums 执行下述算法: 设 n 等于 nums 的长度,如果 n 1 ,终止 算法过程。否则,创建 一个新的整数数组 newNums ,新数组长度…...

leetcode 23. 合并 K 个升序链表

给你一个链表数组,每个链表都已经按升序排列。 输入:lists [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下: [1->4->5,1->3->4,2->6 ] 将它们合并到一个有序链表中得到。 1->…...

Windows 小记 6 -- 为什么我的全局消息钩子卸载不掉?

Hook dll 在其消息循环中被卸载。强制它们进入消息循环有助于卸载它们。在 UnhookWindowsHookEx 之后添加此代码以强制唤醒所有消息循环: DWORD dwResult; SendMessageTimeout(HWND_BROADCAST, WM_NULL, 0, 0, SMTO_ABORTIFHUNG|SMTO_NOTIMEOUTIFNOTHUNG, 1000, &a…...

Python+onlyoffice 实现在线word编辑

onlyoffice部署 version: "3" services:onlyoffice:image: onlyoffice/documentserver:7.5.1container_name: onlyofficerestart: alwaysenvironment:- JWT_ENABLEDfalse#- USE_UNAUTHORIZED_STORAGEtrue#- ONLYOFFICE_HTTPS_HSTS_ENABLEDfalseports:- "8080:8…...

LC低通滤波器Bode图分析(传递函数零极点)

LC低通滤波器 我们使得L4.7uH,C220uF;电感L的阻抗为Xl;电容C的阻抗为Xc; 传递函数 H ( s ) u o u i X C X C X L 1 s C 1 s C s L 1 1 s 2 L C (其中 s j ω ) H(s)\frac{u_{o} }{u_{i} } \frac{…...

【机器学习】机器学习的基本分类-无监督学习(Unsupervised Learning)

无监督学习(Unsupervised Learning) 无监督学习是一种机器学习方法,主要用于没有标签的数据集。其目标是从数据中挖掘出潜在的结构和模式。常见的无监督学习任务包括 聚类、降维、密度估计 和 异常检测。 1. 无监督学习的核心目标 1.1 聚类…...

六、docker compose单机容器编排工具

六、docker compose单机容器编排工具 6.1 compose简介 Compose是一个用于定义和运行多容器Docker应用程序的工具。您可以使用Compose文件来配置应用程序的服务,然后使用单个命令从配置中创建并启动所有服务。compose的配置文件示例如下 compose的github网址&#…...

Python3 operator 模块

Python2.x 版本中,使用 cmp() 函数来比较两个列表、数字或字符串等的大小关系。 Python 3.X 的版本中已经没有 cmp() 函数,如果你需要实现比较功能,需要引入 operator 模块,适合任何对象,包含的方法有: o…...

沪合共融 “汽”势如虹 | 昂辉科技参加合肥上海新能源汽车产业融合对接会

为积极响应制造业重点产业链高质量发展行动号召,促进合肥、上海两地新能源汽车产业链上下游企业融合对接、协同发展,共同打造长三角世界级新能源汽车产业集群,11月28日,合肥市工信局组织部分县区工信部门及全市30余户新能源汽车产…...

访问http网页强制跳转到了https的解决办法

目录 解决浏览器自动从 HTTP 重定向到 HTTPS 的问题问题原因:HSTS(HTTP Strict Transport Security)什么是 HSTS?HSTS 的工作原理 如何解决?1. 清除浏览器的 HSTS 信息在 Chrome 中清除 HSTS 信息:在 Firef…...

PDF处理的创新工具:福昕低代码平台尝鲜

在当今数字化时代,PDF文件的处理和管理变得越来越重要。福昕低代码平台是新发布的一款创新的工具,旨在简化PDF处理和管理的流程。通过这个平台,用户可以通过简单的拖拽界面上的按钮,轻松完成对Cloud API的调用工作流,而…...

EmoAva:首个大规模、高质量的文本到3D表情映射数据集。

2024-12-03,由哈尔滨工业大学(深圳)的计算机科学系联合澳门大学、新加坡南洋理工大学等机构创建了EmoAva数据集,这是首个大规模、高质量的文本到3D表情映射数据集,对于推动情感丰富的3D头像生成技术的发展具有重要意义…...

SpringMVC ——(1)

1.SpringMVC请求流程 1.1 SpringMVC请求处理流程分析 Spring MVC框架也是⼀个基于请求驱动的Web框架,并且使⽤了前端控制器模式(是⽤来提供⼀个集中的请求处理机制,所有的请求都将由⼀个单⼀的处理程序处理来进⾏设计,再根据请求…...

测试工具LoadRunner Professional脚本编写-脚本设置

勾选扩展日志-全选 原因:在并发完成后,通过抽查关键用户日志的方式,检查参数化是否如预期一致,比如抽查用户1(仓库一,物品一),用户11(仓库二,物品一),用户100(仓库十,物品十) 设置忽略思考时间 原因:是否忽略思考时间,请求数可能会有几十倍的差距…...

运用蓝光三维扫描仪的艺术与科技的完美融合-石膏头像模型3D扫描真实复刻

石膏头像具有独特的魅力,每一处细节都彰显着艺术之美。无论是深邃的眼神,还是精致的轮廓,都让人陶醉其中。 随着雕塑形式的日渐丰富,越来越多的新材料和新的塑造手法被运用到雕塑创作中,蓝光三维扫描技术的应用&#…...

文本域设置高度 加上文字限制并show出来:

文本域设置高度 :rows"4" 加上文字限制并show出来&#xff1a; maxlength"30" show-word-limit 效果: <el-form-item label"产品备注" prop"remark"><el-input v-model"form.remark" type"textarea"…...

探索数据确权、隐私保护、安全共享等方面的挑战与解决方案

在数据确权、隐私保护、安全共享等方面&#xff0c;当前确实面临着诸多挑战&#xff0c;同时也存在一些有效的解决方案。以下是对这些方面的详细探讨&#xff1a; 一、数据确权 挑战 权属关系模糊&#xff1a;由于数据具有复杂性和隐蔽性等特点&#xff0c;使得数据的权属关…...

麒麟 V10(ky10.x86_64)无网环境下 openssl - 3.2.2 与 openssh - 9.8p1 升级【最全教程】

目录 背景 安装包下载 上传解压安装包 安装zlib 安装OpenSSL 安装OpenSSH 验证 背景 近期&#xff0c;项目上线已进入倒计时阶段&#xff0c;然而在至关重要的安全检查环节中&#xff0c;却惊现现有的 OpenSSH 存在一系列令人担忧的漏洞&#xff1a; OpenSSH 资源管理错…...

前端技术(23) : 聊天页面

来源: GPT生成之后微调 效果图 HTML代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>聊天</t…...

ArcMap 处理河道坡度、计算污染区、三维爆炸功能

ArcMap 处理河道坡度、计算污染区、三维爆炸功能今天分析 一、计算河道方向坡度 1、折线转栅格 确定 2、提取河道高程值 确定后展示河流的高程值 3、计算坡向数据 确定后展示 4、计算坡度数据 确定后展示 二、计算上游集水区污染值 1、填挖处理 确定 2、计算流向 确定 3、计算…...

数据结构 (30)计算式查找法——哈希法

前言 数据结构中的计算式查找法&#xff0c;特别是哈希法&#xff08;又称散列法、杂凑法、关键字地址计算法&#xff09;&#xff0c;是一种高效的查找技术。 一、哈希法的基本概念 哈希法是通过一个哈希函数将关键字映射到哈希表中的某个位置&#xff0c;从而实现快速查找的技…...

电子商务人工智能指南 4/6 - 内容理解

介绍 81% 的零售业高管表示&#xff0c; AI 至少在其组织中发挥了中等至完全的作用。然而&#xff0c;78% 的受访零售业高管表示&#xff0c;很难跟上不断发展的 AI 格局。 近年来&#xff0c;电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…...

交易系统:线上交易系统流程详解

大家好&#xff0c;我是汤师爷~ 今天聊聊线上交易系统流程详解。 线上交易系统为新零售连锁商家提供一站式线上交易解决方案。其核心目标是&#xff0c;通过数字化手段扩大商家的服务范围&#xff0c;突破传统门店的地理限制。系统支持电商、O2O等多种业务形态&#xff0c;为…...

如何通过自学成长为一名后端开发工程师?

大家好&#xff0c;我是袁庭新。最近&#xff0c;有星友向我提出了一个很好的问题&#xff1a;如何通过自学成为一名后端开发工程师&#xff1f; 为了解答这个疑问&#xff0c;我特意制作了一个视频来详细分享我的看法和建议。 戳链接&#xff1a;如何通过自学成长为一名后端开…...

实际车辆行驶轨迹与预设路线偏离检测的Java实现

准备工作 本项目依赖于两个关键库&#xff1a;JTS Topology Suite&#xff08;简称JTS&#xff09;&#xff0c;用于几何对象创建和空间分析&#xff1b;以及GeoTools&#xff0c;用于处理坐标转换和其他地理信息任务。确保开发环境中已经包含了这两个库&#xff0c;并且正确配…...

pci_resource相关函数

一、介绍 pci_resource_start函数用于获取PCI设备中指定Bar寄存器记录资源起始地址&#xff0c; 函数原型&#xff1a; resource_size_t pci_resource_start(struct pci_dev *dev, int bar) 参数&#xff1a; dev: PCI 设备结构体指针 bar: BAR 寄存器索引 (0-5) 返回&a…...

Android Studio 历史版本下载

Android Studio 历史版本下载 官方链接&#xff1a;https://developer.android.google.cn/studio/archive 通过gradle插件版本反查Android Studio历史版本 Android Studio Ladybug | 2024.2.1 October 1, 2024 【https://redirector.gvt1.com/edgedl/android/studio/ide-zip…...

Jupyter Lab打印日志

有时候在 jupyter 中执行运行时间较长的程序&#xff0c;且需要一直信息&#xff0c;但是程序执行到某些时候就不再打印了。 可以开启 日志控制台&#xff0c;将日志信息记录在控制台中。 参考&#xff1a;https://www.autodl.com/docs/jupyterlab/...

guava缓存的get方法的回调函数讲解一下

CacheBuilder.newBuilder()//设置缓存初始大小&#xff0c;应该合理设置&#xff0c;后续会扩容.initialCapacity(10)//最大值.maximumSize(100)//并发数设置.concurrencyLevel(5)//缓存过期时间&#xff0c;写入后10分钟过期.expireAfterWrite(600,TimeUnit.SECONDS)//统计缓存…...

【双分派小结】

双分派&#xff08;Double Dispatch&#xff09;是一种面向对象编程中的设计模式&#xff0c;通常用于实现多态性&#xff0c;尤其是在涉及多个对象交互时。它的基本思想是通过两个不同的对象来确定方法调用&#xff0c;而不仅仅是依赖于一个对象。 双分派的工作原理 在普通的…...

Python100道练习题

Python100道练习题 BIlibili 1、两数之和 num1 20 num2 22result num1 num2print(result)2、一百以内的偶数 list1 []for i in range(1,100):if i % 2 0:list1.append(i) print(list1)3、一百以内的奇数 # 方法一 list1 [] for i in range(1,100):if i % 2 ! 0:lis…...

Scala—Slice(提取子序列)方法详解

Scala—Slice&#xff08;提取子序列&#xff09;方法详解 在 Scala 中&#xff0c;slice 方法用于从集合中提取一个连续的子序列&#xff08;切片&#xff09;。可以应用于多种集合类型&#xff0c;如 List、Array、Seq 等。 一、slice 方法的定义 slice 根据提供的起始索引…...

nginx根据报文里字段转发至不同地址

nginx接收到post请求.请求报文里是一个json字符串&#xff0c;字符串里有个字段id。 根据id不同&#xff0c;转发到不同地址。 如果idaaa,转发到www.aaa.com.test 如果idbbb,转发到www.bbb.com.test 如何配置,请提供一个nginx.conf 要在 Nginx 中根据 POST 请求的 JSON 负载中的…...

Kafka单机及集群部署及基础命令

目录 一、 Kafka介绍1、kafka定义2、传统消息队列应用场景3、kafka特点和优势4、kafka角色介绍5、分区和副本的优势6、kafka 写入消息的流程 二、Kafka单机部署1、基础环境2、iptables -L -n配置3、下载并解压kafka部署包至/usr/local/目录4、修改server.properties5、修改/etc…...

TCP Robot Send Recive

Function main String data$ 定义字符串变量 SetNet #205, "192.168.0.1", 2004, CRLF, NONE, 0 设置端口号IP地址 OpenNet #205 As Server 端口号对应pc机的端口号 Print "等待201端口连接" WaitNet #201 等待201网…...

旅游管理系统|Java|SSM|VUE| 前后端分离

【重要1⃣️】前后端源码万字文档部署文档 【重要2⃣️】正版源码有问题包售后 【包含内容】 【一】项目提供非常完整的源码注释 【二】相关技术栈文档 【三】源码讲解视频 【其它服务】 【一】可以提供远程部署安装&#xf…...

qt-everywher交叉编译e-src-5.15.2

简化配置的方式&#xff1a; 你完全可以通过直接配置 安装目录、编译链 和 目标架构 来完成交叉编译&#xff0c;而不需要修改 mkspecs 配置。以下是如何通过简化配置来进行交叉编译 Qt 的步骤。 准备交叉编译工具链 首先&#xff0c;确保你已经安装了交叉编译工具链&#xff…...

Cursor vs VSCode:主要区别与优势分析

Cursor - The AI Code Editor 1. AI 集成能力 Cursor的优势 原生AI集成&#xff1a; # Cursor可以直接通过快捷键调用AI # 例如&#xff1a;按下 Ctrl K 可以直接获取代码建议 def complex_function():# 在这里&#xff0c;你可以直接询问AI如何实现功能# AI会直接在编辑器中…...

Qt 小项目 学生管理信息系统

主要是对数据库的增删查改的操作 登录/注册界面&#xff1a; 主页面&#xff1a; 添加信息&#xff1a; 删除信息&#xff1a; 删除第一行&#xff08;支持多行删除&#xff09; 需求分析&#xff1a; 用QT实现一个学生管理信息系统&#xff0c;数据库为MySQL 要求&#xf…...

Hadoop3集群实战:从零开始的搭建之旅

目录 一、概念 1.1 Hadoop是什么 1.2 历史 1.3 三大发行版本&#xff08;了解&#xff09; 1.4 优势 1.5 组成&#x1f497; 1.6 HDFS架构 1.7 YARN架构 1.8 MapReduce概述 1.9 HDFS\YARN\MapReduce关系 二、环境准备 2.1 准备模版虚拟机 2.2 安装必要软件 2.3 安…...

软件工程复习记录

基本概念 软件工程三要素&#xff1a;方法、工具、过程 软件开发方法&#xff1a;软件开发所遵循的办法和步骤&#xff0c;以保证所得到的运行系统和支持的文档满足质量要求。 软件开发过程管理 软件生命周期&#xff1a;可行性研究、需求分析、概要设计、详细设计、编码、测…...

爬虫运行后数据如何存储?

爬虫运行后获取的数据可以存储在多种不同的存储系统中&#xff0c;具体选择取决于数据的规模、查询需求以及应用场景。以下是一些常见的数据存储方法&#xff1a; 1. 文件系统 对于小型项目或临时数据存储&#xff0c;可以直接将数据保存到本地文件中。常见的文件格式包括&…...

【C语言】C语言的潜规则:运行环境对C程序执行特性的影响

C语言的潜规则&#xff1a;C语言的执行会因为它的运行环境被赋予不同的特性 C语言是一种非常底层、高效、灵活的编程语言&#xff0c;但这种灵活性也带来了很多不确定性。C语言的行为在很大程度上依赖于其运行环境&#xff08;编译器、操作系统、硬件架构等&#xff09;。这也…...

Win11 24h2 不能正常ensp

Win11 24h2 不能正常ensp 因为Win11 24h2的内核大小更改&#xff0c;目前virtualbox在7.1.4中更新解决了。而ensp不支持5.2.44之后的virtualbox并已停止维护&#xff0c;不再进行5.2.44修复&#xff0c;virtualbox 5.2.24的ntdll文件sizeofimage问题&#xff0c;此问题导致ens…...

【认证法规】安全隔离变压器

文章目录 定义反激电源变压器 定义 安全隔离变压器&#xff08;safety isolating transformer&#xff09;&#xff0c;通过至少相当于双重绝缘或加强绝缘的绝缘使输入绕组与输出绕组在电气上分开的变压器。这种变压器是为以安全特低电压向配电电路、电器或其它设备供电而设计…...