2024三掌柜赠书活动第九期:Node.js从基础到项目实践(视频教学版)-程序员宅基地

技术标签: node.js  

目录

  • 前言
  • Node.js从基础到项目实践
  • 关于《Node.js从基础到项目实践(视频教学版)》
  • 编辑推荐
  • 内容简介
  • 作者简介
  • 图书目录
  • 书中前言/序言
  • 《Node.js从基础到项目实践(视频教学版)》全书速览
  • 结束语

前言

随着Web应用的快速发展,Node.js作为一种强大的JavaScript运行时环境,被广泛应用于服务器端开发,它的高效性能、可扩展性和丰富的生态系统,使其成为现代Web开发的首选工具,Node.js在服务器端开发领域扮演着重要的角色,作为一种基于Chrome V8引擎的JavaScript运行时环境,Node.js具有出色的性能和可扩展性,使得开发者能够构建高效的网络应用。做前后端开发的小伙伴想必都知道Node.js,Node.js不仅可以用在前端领域,也可以用在后端领域,所以它是一个全栈技术栈,值得搞前后端的开发者学习掌握。但是Node.js也是有一定的技术门槛,要想入门及精通是需要花费一定学习成本的。还有就是Node.js作为一种快速、轻量级的JavaScript运行时环境,已成为现代Web开发的重要工具。那么本文就来详细分享一下从 Node.js的基础知识到实际项目中的实践。

Node.js从基础到项目实践

1、安装和设置Node.js

在开始Node.js的学习之前,需要做前提工作,首先需要安装和设置Node.js的开发环境,大家可以根据自己的操作系统选择合适的Node.js版本,并通过简单的步骤进行安装。

2、JavaScript基础

作为Node.js的核心语言,JavaScript的基础知识对于理解和使用Node.js至关重要,主要涉及JavaScript的基本语法、数据类型、变量和函数等概念,以及常用的JavaScript内置对象和操作。

3、Node.js核心概念

在掌握了JavaScript基础之后,探索Node.js的核心概念和功能,具体如下所示:

  • 模块系统:Node.js采用了CommonJS模块规范,允许开发者将代码封装为模块,实现代码的复用和组织。我们将学习如何创建和使用Node.js模块,并了解模块的加载和导出机制。
  • 异步编程:Node.js采用事件驱动和非阻塞I/O的编程模型,使得处理并发请求成为可能,以及学习如何使用回调函数、事件触发器和Promise等方式来处理异步操作,以及如何避免回调地狱。
  • 文件系统操作:Node.js提供了丰富的文件系统API,使得文件的读写、目录的创建和删除等操作变得简单,以及学习如何使用Node.js进行文件系统操作,并实践一些常见的文件处理任务。

4、实际项目实践

通过实际的项目实践,能够将Node.js的知识应用于实际场景中,以下是一些可能的项目实践示例:

  • 构建简单的Web服务器:使用Node.js和其内置的HTTP模块,可以构建一个基本的Web服务器,并处理HTTP请求和响应。
  • 数据库集成:学习如何使用Node.js与常见的数据库(如MongoDB或MySQL)进行集成,实现数据的读取、写入和更新操作。
  • RESTful API开发:通过使用Node.js和Express框架,可以构建RESTful API,实现数据的CRUD操作,并学习如何处理路由和中间件。
  • 实时应用程序:利用Node.js的事件驱动和WebSocket技术,可以构建实时通信的应用程序,如聊天室或实时数据展示。

5、进一步学习和扩展

还有就是Node.js具有广阔的生态系统,提供了丰富的第三方模块和工具,可以进一步扩展您的Node.js技能,可以学习和使用诸如Express、Socket.IO、Mongoose等流行的Node.js库和框架,以满足不同项目的需求。

关于《Node.js从基础到项目实践(视频教学版)》

接下来给大家推荐一本关于Node.js的书籍,这是一本关于前端Node领域的干货图书,一经上市就登上了当当“计算机与互联网”图书排行榜前列。本书从Node.js的基础知识出发,帮助你快速掌握Node.js的整体知识和技巧,助你在前端开发领域取得成功!另外,关注本文博主,点赞+收藏本文,且在本文评论区评论“我要精通Node.js”,将选取三名幸运读者送出纸质版《Node.js从基础到项目实践(视频教学版)》一本,截止时间:2024.02.12。入手《Node.js从基础到项目实践(视频教学版)》传送门:《Node.js从基础到项目实践(视频教学版)》(袁龙)【简介_书评_在线阅读】 - 当当图书或者https://item.jd.com/13837592.html,个人觉得这本书非常的不错,是一本不可多得的好书,值得拥有去学习。

编辑推荐

《Node.js从基础到项目实践(视频教学版)》以理论结合实践的形式,讲解Node.js 基础、框架、进阶知识和项目实践。本书旨在帮助读者轻松、透彻地掌握Node.js技术,领悟到Node.js的开发精髓,快速提升至Node.js专业开发水平,真正迈入全栈工程师的行列。本书有以下特点。

(1)视频讲解,入门轻松。本书配套有相对应的视频讲解,通过视频讲解可快速切入主题,提高学习效率。

(2)案例丰富,本书几乎每个章节都提供了案例演示,且操作步骤详细,读者边学边做,可更有效地消化、理解所学的知识点。

(3)学以致用,实用性强。认真学习,可在短时间内掌握实用的开发技巧。

(4)丰富的配套学习服务资源。为方便快速入门,本书配备了源码、课件、视频等学习资源,读者可扫描书中二维码学习、下载。

内容简介

《Node.js从基础到项目实践(视频教学版)》以理论结合实践的形式,讲解了Node.js 基础、框架、进阶知识和项目实践。本书为视频教学版,每一章节都有相对应的视频讲解,通过视频讲解可快速切入主题,提高学习效率。 全书分为4 大部分,共13 章,分别是Node.js 基础入门、Node.js 框架、Node.js 进阶以及企业项目实践。其中,第1~3 章为Node.js 基础入门讲解,包括Node.js 核心模块、自定义模块、第三方模块;第4~7 章为Node.js 框架讲解,包括Express 流行框架、MySQL 数据库、在Express 框架中操作MySQL 数据库以及Express 框架身份验证;第8~12 章为Node.js 进阶讲解,包括Node.js 事件循环、Koa 框架、socket.io、网络爬虫、GraphQL 基础语法;第13 章为企业项目实践讲解,使用Express 框架和MySQL 数据库完成新闻管理系统API 的开发。

作者简介

袁龙  主要从事Web开发、教学培训等业务,创建“锦匠特效”Web前端工具网站,为数万前端开发者提供高效率工作方式,轻松实现网页动画特效,目前是51CTO、CSDN等在线教育平台讲师。

图书目录

第1章 Node.js 基础入门 1

1.1 回顾浏览器中的JavaScript 1

1.2 Node.js 简介 2

1.2.1 什么是Node.js 2

1.2.2 详解Node.js 运行环境 2

1.3 安装Node.js 运行环境 3

1.3.1 选择Node.js 版本 3

1.3.2 查看Node.js 版本号 3

1.4 在Node.js 中执行JavaScript 文件 4

1.5 Node.js 内置模块 5

1.5.1 fs 模块 5

1.5.2 path 模块 7

1.5.3 http 模块 10

1.5.4 http 模块综合案例 13

1.6 渲染数据列表 14

1.7 响应静态资源 16

第2章 Node.js 自定义模块 19

2.1 创建自定义模块 19

2.2 共享自定义模块的属性和方法 20

2.2.1 module 对象 20

2.2.2 自定义模块共享成员的注意事项 21

2.2.3 exports 对象 22

2.2.4 CommonJS 规范 25

第3章 Node.js 第三方模块 26

3.1 什么是包 26

3.2 npm 简介 26

3.2.1 nodemon 工具 27

3.2.2 第三方模块moment 28

3.2.3 第三方模块目录结构 29

3.2.4 包的分类 31

3.3 切换模块下载服务器 31

3.3.1 切换至淘宝镜像服务器 31

3.3.2 nrm 工具的使用 32

3.4 发布自定义模块包 33

3.4.1 包的结构规范 33

3.4.2 定义格式化日期模块 33

3.4.3 发布包 36

3.4.4 删除自定义模块包 38

第4章 Express 框架 39

4.1 什么是Express 39

4.1.1 Express 框架的基本使用 39

4.1.2 获取URL 参数 42

4.2 使用express.static()托管静态资源 43

4.3 Express 路由 45

4.3.1 路由的基本使用 45

4.3.2 模块化路由 46

4.4 Express 中间件 48

4.4.1 什么是中间件 48

4.4.2 定义Express 中间件 48

4.4.3 中间件的作用 50

4.4.4 定义多个全局中间件 51

4.4.5 局部中间件 52

4.4.6 中间件分类 54

4.5 使用Express 框架写接口 60

4.5.1 定义GET 请求接口 60

4.5.2 定义POST 请求接口 62

4.5.3 接口跨域 63

4.5.4 定义JSONP 接口 64

第5章 MySQL 数据库 66

5.1 什么是MySQL 数据库 66

5.2 Navicat 可视化管理工具 67

5.2.1 安装Navicat 可视化管理工具 67

5.2.2 使用Navicat 管理MySQL 数据库 68

5.2.3 创建数据表 69

5.3 使用SQL 语句管理数据库 70

5.3.1 SELECT 查询语句 70

5.3.2 INSERT INTO 插入语句 71

5.3.3 UPDATE 更新语句 72

5.3.4 DELETE 删除语句 73

5.3.5 WHERE 子句 73

5.3.6 AND 和OR 运算符 74

5.3.7 ORDER BY 子句 75

5.3.8 COUNT(*)函数 77

第6章 Express 框架操作MySQL 数据库 78

6.1 安装mysql 第三方模块 78

6.1.1 安装mysql 模块 78

6.1.2 执行SQL 语句 79

6.2 操作数据库 79

6.2.1 新增数据 80

6.2.2 更新数据 81

6.2.3 删除数据 83

第7章 Express 框架身份认证 84

7.1 Web 开发模式 84

7.2 身份认证分类 85

7.2.1 Session 认证机制 85

7.2.2 服务器端Session 认证 86

7.2.3 服务器端安装express-session 中间件 87

7.3 JWT 认证 89

7.3.1 什么是JWT 认证 89

7.3.2 在Express 项目中使用JWT 认证 90

第8章 Node.js 事件循环 93

8.1 浏览器中的事件循环 93

8.2 宏任务与微任务 96

8.3 多层嵌套promise 事件循环案例 97

8.4 混合嵌套事件循环案例 100

8.5 Node.js 事件循环 102

8.6 Node.js 事件循环案例 103

第9章 Koa 框架 106

9.1 安装Koa 框架 106

9.2 详解context 对象 107

9.2.1 context.request 属性 107

9.2.2 context.response 属性 108

9.3 加载HTML 文件 109

9.4 路由 110

9.5 模块化路由 112

9.6 URL 请求参数 114

9.7 koa-bodyparser 模块的使用 116

9.8 托管静态资源 118

9.9 异步处理 120

9.9.1 同步中间件执行顺序 120

9.9.2 异步中间件 121

9.10 错误类型中间件 123

9.11 接口跨域 126

9.12 身份认证 127

9.12.1 koa-session 认证 127

9.12.2 从Session 中读取数据 129

9.12.3 JWT 认证 130

9.12.4 测试JWT 认证 133

9.13 在Koa 中操作MySQL 134

9.14 Koa 框架项目实践 135

9.14.1 初始化项目 136

9.14.2 配置常用中间件 136

9.14.3 初始化路由模块 137

9.14.4 安装mysql 模块 139

9.14.5 实现注册API 接口 140

9.14.6 登录API 接口 144

9.14.7 Token 解密 147

9.15 模板引擎 148

第10章 socket.io 聊天室案例 151

10.1 什么是socket.io 151

10.1.1 项目初始化 152

10.1.2 登录聊天室 154

10.2 配置socket.io 155

10.2.1 配置服务器端 156

10.2.2 配置客户端 156

10.3 实现实时聊天 157

10.4 模拟Session 显示用户名 159

10.5 显示聊天室在线人数 162

10.6 私聊 164

10.7 群组聊天 166

第11章 网络爬虫 169

11.1 什么是爬虫 169

11.2 个爬虫程序 169

11.3 爬取前后端分离的网页内容 173

11.4 Selenium 简介 177

11.5 自动搜索 178

11.6 使用Selenium 实现爬虫功能 179

第12章 GraphQL 基础语法 184

12.1 什么是GraphQL 184

12.2 GraphQL 快速体验 184

12.3 GraphQL 服务器端代码解析 186

12.4 定义对象数据类型 188

12.5 参数传递 189

12.6 标量类型 191

12.7 枚举类型 192

12.8 input 输入类型 193

12.9 回调函数参数详解 195

第13章 新闻管理系统 199

13.1 初始化项目 199

13.2 配置常用中间件 200

13.3 创建路由模块 200

13.3.1 初始化路由模块 201

13.3.2 抽离路由模块事件处理函数 201

13.4 创建db_users 表 202

13.5 安装mysql 模块 203

13.6 注册API 接口 204

13.7 使用@escook/express-joi 中间件验证表单数据 208

13.8 登录API 接口 211

13.9 Token 解密 216

13.10 个人中心管理 217

13.10.1 获取当前用户的API 接口 218

13.10.2 更新用户信息的API 接口 221

13.10.3 重置密码的API 接口 224

13.10.4 更新用户头像的API 接口 229

13.11 新闻文章分类管理 232

13.11.1 新建db_article_nav 数据表 233

13.11.2 获取新闻文章分类的API 接口 233

13.11.3 新增新闻文章分类的API 接口 236

13.11.4 删除新闻文章分类的API 接口 241

13.11.5 根据id 获取新闻文章分类 245

13.11.6 根据id 更新新闻文章分类 248

13.12 新闻文章管理 253

13.12.1 新建db_article 数据表 253

13.12.2 发布新闻文章的API 接口 254

13.12.3 获取新闻文章列表的API 接口 260

13.12.4 根据id 删除新闻 264

13.12.5 根据id 获取新闻文章详情 267

书中前言/序言

  当下,各行各业都面临着大数据、人工智能、AR(augmented reality,增强现实)、VR(virtual reality,虚拟现实)等各种互联网新技术的冲击。在此技术背景下,Web前端行业也发生了巨大的改变,前端程序员已从单纯的切图处理发展到了需要处理多种后端业务。其中,Node.js就是连接前端和后端的一件利器。

    准确地说,Node.js是专门为前端工程师打造的运行环境,可以让JavaScript变成一门后端语言,实现后端接口开发。因此,Node.js可以让前端工程师华丽转身,跨入全栈工程师的行列,拥有更多的技术优势。

    本书内容

    本书内容分为4大部分,系统地讲解了Node.js的各项基础知识、框架和进阶内容,同时给出了一个企业项目实践。具体结构划分如下。

    第1部分为Node.js基础入门,包括第1~3章,主要讲解Node.js核心API,掌握核心模块、自定义模块、第三方模块的使用,实现服务器的创建。

    第2部分为Node.js框架,包括第4~7章,主要讲解当前比较流行的Express框架以及MySQL数据库,Web开发模式和不同开发模式对应的身份验证,实现接口API的开发。精通本章知识,标志着读者可正式跨入全栈工程师的行列。

    第3部分为Node.js进阶,包括第8~12章,主要讲解事件循环、高级框架、高级模块的使用,读者可畅快地体验新技术带来的乐趣,如自行开发一个爬虫程序。

    第4部分为企业项目实践,包括第13章,主要讲解新闻管理系统API的开发,使读者掌握项目实践的开发技巧。

    本书特点

    (1)简明易学,入门轻松

    本书语言通俗易懂,知识讲解简洁明了,直指核心,甚少有冗余、无用的话;同时理论结合案例,使读者能快速悟到Node.js的开发精髓。

    (2)实用性强

    本书是笔者对多年Node.js实践经验的干货分享,知识虽多,但并非平铺直叙。哪些技术点能在实际工作中用到,哪些技巧能帮助读者节省大量的时间和精力,所有的实践经验都在本书的内容设计中一一体现。因此,本书的实用性极强,读者认真地学习,可以在短时间内掌握实用的开发技巧。

    (3)案例丰富

    本书几乎每个章节都提供了案例演示,且操作步骤详细,读者边学边做,可更有效地消化、理解所学的知识点。只要能独立完成书中的案例,即可达到专业的Node.js开发水平。

    (4)视频讲解

    本书几乎每个章节都提供了详尽的同步教学视频,跟着视频学,不但对操作过程看得更清晰,而且可快速切入主题,提高学习效率。

    配套学习资源

    为方便读者快速入门,本书配备了源码、课件、视频等学习资源,读者可扫描书中二维码学习、下载。具体资源如下:全书案例源码、项目实战源码,同步教学视频,教学课件PPT。

    同时,Node.js技术更迭很快,笔者会不定期地推出一些新的视频,如介绍新的技术框架、新的版本知识等。该部分内容会持续更新,读者可扫描书中二维码关注、了解,持续提升自己。

读者对象

    本书适用于网页设计与制作人员、网站建设开发人员、院校相关专业的学生、后端工程师、个人Web开发爱好者学习。

    本书在编写过程中历经多次勘校、查证,力求减少差错,尽善尽美,但由于笔者水平有限,书中难免存在遗漏的问题,欢迎读者批评指正。

    不管未来的技术如何更迭,希望读者能一步一步脚踏实地,朝着心中希望的结果前行。祝大家学习快乐!

《Node.is从基础到项目实践(视频教学版)》全书速览

结束语

通过本文的分享讲解,想必大家对Node.js有了更深的了解吧,从基础到实践地学习Node.js,并掌握构建Web应用和API的技能,Node.js的灵活性和强大的功能使其成为现代Web开发的有力工具。在实际项目开发中,它有多种应用场景,可以帮助前后端开发者实现动态的样式控制、事件委托、条件渲染和表单验证等功能。读者将能够从Node.js的基础知识出发,逐步深入了解其核心概念和功能,通过实际项目实践,也可以将所学知识应用于实际开发场景中,构建高效的网络应用和服务器端程序。Node.js的强大性能和丰富的生态系统为开发者提供了广阔的可能性,帮助大家快速构建可靠和可扩展的应用程序。总之,不断学习和探索Node.js的更多特性和工具将使您成为一名优秀的Node.js开发者,祝您在Node.js的学习和实践中取得成功!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/CC1991_/article/details/136062345

智能推荐

基于web的科研项目管理系统设计与实现_基于web的项目管理系统的设计与实现-程序员宅基地

文章浏览阅读5.1k次,点赞4次,收藏45次。需求:(1)项目申报模块包括申报新项目和我的申报信息。申报新项目:申报者对新项目进行申报,填写完申报信息并提交后,项目置为新申请状态;我的申报信息:申报者可以在我的申报信息里查看申报过的项目信息。(2)项目评审模块包括管理评审和专家评审。管理员评审:管理员对新申报的项目进行网络评审。专家评审:专家对初审状态的项目进行网络评审。(3)项目管理模块包括项目列表、项目进度和项目结题。项目..._基于web的项目管理系统的设计与实现

mysql dwith boost_linux下Mysql 8.0.19 编译安装-程序员宅基地

文章浏览阅读951次。1 前言linux下安装MySQL的方式有很多种,包括以仓库的方式安装(yum,apt,zypper),以包的方式安装(rpm,deb),以docker方式安装,从压缩包解压安装,从源码编译安装,这里使用的是最后一种,从源码编译安装。编译安装需要大量的耐心与时间,而且还会遇到非常多奇奇怪怪的问题,因此,需要极大的毅力,很有可能一万次失败也换不来一次的成功,请做好心理准备。2 准备工作下面是安装要求..._mysql dwith boost

mysql 高级(进阶学习)_mysql高级进阶-程序员宅基地

文章浏览阅读1.4k次,点赞2次,收藏8次。视图就是将某个查询语句存储在数据中,并为其命名,视图中并不存储数据,数据还是在基本表中存储。定义视图使用视图删除视图存储过程就是把一段处理逻辑存入到数据库中,使用是就由 JDBC 调用即可。调用存储过程可以减少应用程序和数据库交互次数,在数据库内部执行,执行效率高。存储事先需要定义,有三种参数类型:in 入参(接收调用者传入的数据)out 返回(向调用者返回数据)inout (既可以接收调用者传入的数据,也可以向调用者返回数据)函数是一个特殊的存储过程。存储过程不仅有输入参数,还有输出参数,但是没有返回值,_mysql高级进阶

goquery php,golang:Goquery简单爬虫实例-程序员宅基地

文章浏览阅读189次。Selection类型提供的方法,这些方法是页面解析最重要,最核心的方法1)类似函数的位置操作-Eq(indexint)*Selection//根据索引获取某个节点集-First()*Selection//获取第一个子节点集-Last()*Selection//获取最后一个子节点集-Next()*Selection..._goquery获取tbody的数据

计算机资源库在哪,电脑的资源管理在哪里-程序员宅基地

文章浏览阅读2.7k次。语音内容:大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。电脑的资源管理的位置:1、单击开始菜单,在弹出的快捷菜单中选择文件资源管理器。2、按组合键Win+R打开运行窗口。3、在运行窗口中输入命令:explorer按回车键执行命令即可以打开资源管理器窗口。4、在桌面的任务栏上右击鼠标,在弹出的快捷菜单中选择“任务管理器。5、在任务管理器的菜单栏中选择文件中运行新任务。6、在运行..._计算机库到哪里找

适合新手的CTF靶场合集-程序员宅基地

文章浏览阅读3.4w次,点赞42次,收藏344次。前言我整理得没有那么全,这里的合集主要还是面对新手。做题贵精不在多,好好练习每一题,学习每个知识点,不懂的百度或者 Google 即可。记住,你是为了提高自己而去打 CTF 。CTF 比赛时间表CTFwiki(入门必看wiki): https://ctf-wiki.github.io/ctf-wiki/#/introduction XCTF社区: https://time.xctf...._ctf靶场

随便推点

推荐算法(一)--基本介绍_详细论述基于流行度的推荐算法的设计步骤法与应用特点-程序员宅基地

文章浏览阅读4.4w次,点赞26次,收藏194次。       &am_详细论述基于流行度的推荐算法的设计步骤法与应用特点

3DS轨迹球 + 光照_3d 模型 轨迹球旋转-程序员宅基地

文章浏览阅读388次。在前面的基础上 加个光照,会有什么效果?下面以博文《3D球体一个(纪念第一个opengl程序~~)》为模板,加入上一篇的代码下面是该文效果:加入我们的://显示有纹理贴图的3ds模型,+光照 +虚拟球旋转 //按a或d使...#define name3DS "Data/3ds/boy_back.3DS" //waji building_nb //wjj1_b_3d 模型 轨迹球旋转

整理一下nvm的安装以及安装后node生效且npm不生效的问题_nvm 安装之后 npm 不是有效-程序员宅基地

文章浏览阅读2.2w次,点赞35次,收藏134次。关于nvm / node / npm安装前须知nvm安装安装包地址配置路径和下载源检查nvm安装是否成功nvm相关指令node检查npm检查npm安装失败的处理查找和node版本相匹配的npm版本npm安装安装前须知必须卸载掉已有的node版本!!!这里不具体说了,如果不会卸载,可以参考这里:点击查看nvm安装安装包地址https://gitee.com/guozia007/layup-packages解压,傻瓜式安装,不过多说明了。配置路径和下载源来到安装nvm的文件夹,找到se_nvm 安装之后 npm 不是有效

对于以太坊的反思,美链,课程总结_学习以太坊感受-程序员宅基地

文章浏览阅读2k次。反思与总结_学习以太坊感受

Docker安装MySQL、nginx并且部署SpringBoot项目前后端(超详细版)_docker desktop 整合 nginx 和spring-程序员宅基地

文章浏览阅读1.4k次,点赞24次,收藏16次。超级详细的Docker部署Springboot项目的步骤,大家只需要按照文档一步一步的复制粘贴即可。_docker desktop 整合 nginx 和spring

Freescale I.mx 6 Android 4.2.2源码编译环境搭建(基于ubuntu12.04 LTS)_note, selecting 'lib32z1-dev' instead of 'lib32z-d-程序员宅基地

文章浏览阅读2.9k次。Freescale I.mx 6 Android 4.2.2源码编译环境搭建 1 安装必要的第三方工具:$ sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \ x11proto-_note, selecting 'lib32z1-dev' instead of 'lib32z-dev

推荐文章

热门文章

相关标签