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

news2025/1/11 10:04:58

《循序渐进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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于大模型的图像重命名工具ai-renamer

文章目录 基础使用语言问题命名风格 基础使用 ai-renamer是一款自动为图片重命名的工具,由于需要调用基于本地大模型,在使用之前需要用Ollama或者LM Studio配置好至少一个大模型,比如Llava, Gemma, Llamad等。如果想要为视频重命名&#xff…

element Cascader级联选择器 点文字即可选中,去掉radio按钮

需求 将示例的点击radio和点击文字功能结合在一起。可以选择任意一级的内容,直接点击文字即可选中,同时如果有下一级就展示,去掉radio标签。 实现方法 通过css将radio标签做成文字框一样大小并且透明覆盖在整个文字上方,点击文…

【已解决】黑马点评项目中启动Spring Boot服务失败,com.sun.tools.javac.tree.JCTree qualid

黑马点评项目中启动Spring Boot服务失败 报错提示 java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field com.sun.tools.javac.tree.JCTree qualid这是因为 lombok 版本不兼容造成的 找到 pom.xml 文件&#xff0…

C#,人工智能,深度学习,目标检测,OpenCV级联分类器数据集的制作与《层级分类器一键生成器》源代码

一、目标识别技术概述 1、摘要 目标检测是计算机视觉中最基本和最具挑战性的问题之一,它试图从自然图像中的大量预定义类别中定位目标实例。深度学习技术已成为直接从数据中学习特征表示的强大策略,并在通用目标检测领域取得了显著突破。鉴于这一快速发…

绿虫光伏设计系统:清洁能源的未来

煤炭、石油、天然气是我们现在依赖的重要能源,但这些能源难以再生,而且开采过程中会产生污染。太阳能发电作为清洁能源的一种重要形式,受到了越来越多的关注。绿虫光伏发电系统,不仅考虑到其发电效率,还可以考虑其经济…

2025澄迈漓岛音乐节品牌招商大会成功举行

——共谋音乐盛事,携手推动文化经济发展 12月6日,“2025澄迈漓岛音乐节品牌招商大会”(以下简称“招商大会”)在澄迈举行。本次大会由澄迈福山发展有限公司、福山咖啡文化风情镇旅游区联合主办,海南绿发投资有限公司承…

基于Java和Vue开发的漫画阅读软件漫画阅读小程序漫画APP

前景分析 受众广泛:漫画的受众群体广泛,不仅限于青少年,还涵盖了成年人等多个年龄层和社会阶层。漫画文化在全球范围内的影响力不断扩大,未来漫画软件创业可以考虑全球市场的拓展。 市场需求大:数字化阅读趋势下&…

Lua中实现HTTP请求的User-Agent自定义

User-Agent(用户代理)是HTTP请求头的一部分,用于描述发出请求的客户端的信息,包括浏览器类型、版本和操作系统等。自定义User-Agent对于开发者来说是一个重要的功能,它可以帮助服务器识别请求来源,也可以模…

dell电脑开不了机怎么回事?戴尔电脑无法开机解决方法

dell戴尔电脑开不了机,这是很多使用dell电脑用户常遇到的问题。这种故障情况是由多种原因引起,包括硬件故障、软件问题或电源问题等等。dell电脑开不了机怎么办呢?下面便为大家介绍一下相关解决修复方法,帮助用户解决戴尔电脑无法…

148. 排序链表(java) 标记一下

我的思路是插入排序,然而时间超出限制!!! 时间复杂度是 O(nlogn) 的排序算法包括归并排序、堆排序和快速排序(快速排序的最差时间复杂度是 O(n 2)),最适合链表的排序算法是归并排序。 题目描述…

C语言实验 二维数组

时间:2024.12.6 一、实验 7-1 矩阵运算 代码 #include<stdio.h> int main(){int a[20][20]={0};int n,i,j;int sum=0;scanf("%d",&n);for(i=0;i<n;i++){for(j=0;j<n;j++){scanf("%d",&a[i][j]);if((i!=n-1)&&(j!=n-1)&am…

物通博联,smart200配置

设备&#xff1a;物通博联smart200plc交换机 网线直连&#xff0c;并网&#xff0c;本地链接&#xff0c;电脑直连 配置电脑ip&#xff0c;以太网修改ip网段为2段&#xff0c;ping通192.168.2.1 浏览器访问192.18.2.1&#xff0c;输入账号密码进入后台配置页面 &#xff0c;…

租赁小程序的优势与应用场景解析

内容概要 租赁小程序&#xff0c;听起来是不是很酷&#xff1f;其实&#xff0c;它就是一个让你可以方便地租借各种高成本但用得不频繁的商品的平台。想象一下&#xff0c;当你需要租一件派对用的华丽小礼服&#xff0c;或是想体验一下超酷的运动器材&#xff0c;租赁小程序就…

最简单的线性回归神经网络

数据&#xff1a; # 线性回归 import torch import numpy as np import matplotlib.pyplot as plt# 随机种子&#xff0c;确保每次运行结果一致 torch.manual_seed(42)# 生成训练数据 X torch.randn(100, 3) # 100 个样本&#xff0c;每个样本 3 个特征 true_w torch.tenso…

第九篇:k8s 通过helm发布应用

什么是helm&#xff1f; Helm 是 Kubernetes 的包管理器。Helm 是查找、分享和使用软件构建 Kubernetes 的最优方式。 在红帽系的Linux中我们使用yum来管理RPM包&#xff0c;类似的&#xff0c;在K8s中我们可以使用helm来管理资源对象&#xff08;Deployment、Service、Ingress…

FastAPI解决跨域报错net::ERR_FAILED 200 (OK)

目录 一、跨域问题的本质 二、FastAPI中的CORS处理 1. 安装FastAPI和CORS中间件 2. 配置CORS中间件 3. 运行FastAPI应用 三、解决跨域报错的步骤 四、案例&#xff1a;解决Vue.js与FastAPI的跨域问题 1. Vue.js前端应用 2. FastAPI后端API 3. 配置CORS中间件 4. 运行…

ThinkPHP+Layui开发的ERP管理系统

ERP采购生产销售系统&#xff0c;一款基于ThinkPHPLayui开发的ERP管理系统&#xff0c;帮助中小企业实现ERP管理规范化&#xff0c;此系统能为你解决五大方面的经营问题&#xff1a;1.采购管理 2.销售管理 3.仓库管理 4.资金管理 5.生产管理&#xff0c;适用于&#xff1a;服装…

数字化转型中的架构整合:业务、数据、应用与技术架构的协同发展

一、引言 在当今快速发展的数字经济时代&#xff0c;企业面临着前所未有的挑战与机遇。数字化转型已成为企业提升竞争力和适应市场变化的关键策略。然而&#xff0c;成功的数字化转型不仅仅依赖于技术的引入&#xff0c;更需要对企业内部架构的深刻理解与整合。本文将探讨业务架…

C语言实例_26之根据输入计算星期几

1. 问题 请输入星期几的第一个字母来判断一下是星期几&#xff0c;如果第一个字母一样&#xff0c;则继续判断第二个字母。 2. 实现思路 思路一&#xff1a;嵌套if-else语句实现 首先接收用户输入的第一个字母&#xff0c;使用if-else语句进行判断。如果输入的是M&#xff0…

ceph安装P版本

文章目录 1、搭建的要求1、OSD约束2、ceph部署方式1、cephadm的部署原理红帽版本搭建(RHCS5.0部署) 2、cephadm安装P版本1、环境要求2、配置主机名&#xff0c;关闭防火墙&#xff0c;时间同步3、检查python环境和容器运行时环境4、部署引导节点(下载cephadm脚本)1、获取脚本2、…