chevron_left

长乐未央全栈系列:Node.js 项目实践(2025 版)

已发布
第 54 回

课程辅导专享

长乐未央全栈系列:Node.js 项目实践(2025 版) - 进阶:一对多关联的 Bug

2024年10月02日更新
长乐未央全栈系列:Node.js 项目实践(2025 版) 购买课程辅导服务 29.9元

浏览课程讲义 / 课程辅导群 / 一对一远程协助 / 专享额外课程 / 下载全套课程

课程辅导 QQ 群:297221978

遇到问题,咨询客服 QQ: 124765984

目录

play_arrow
1
课程介绍
play_arrow
2
使用 nvm 安装 Node.js
play_arrow
3
编辑器与创建 Express 项目
play_arrow
4
项目结构与代码解析
play_arrow
5
使用 Docker 运行 MySQL
play_arrow
6
创建数据库与数据表
play_arrow
7
常用 SQL 语句之:增加、修改、删除篇
play_arrow
8
常用 SQL 语句之:查询篇
play_arrow
9
使用 Sequelize ORM
play_arrow
10
模型、迁移与种子
play_arrow
11
接口 1:查询文章列表
play_arrow
12
接口 2:查询文章详情
play_arrow
13
Apifox 的使用
play_arrow
14
接口 3:创建文章
play_arrow
15
接口 4:删除文章
play_arrow
16
接口 5:更新文章
play_arrow
17
接口 6:模糊搜索
play_arrow
18
接口 7:数据分页
play_arrow
19
问题 1:白名单过滤表单数据
play_arrow
20
问题 2:验证表单数据
play_arrow
21
终极版:增删改查(封装响应,优化代码)
play_arrow
22
暂停!中场大复习
play_arrow
23
实战数据库设计
play_arrow
24
MySQL Workbench 的使用
play_arrow
25
一口气建好所有表
play_arrow
26
后台:分分钟搞定分类接口
play_arrow
27
后台:超简单的系统设置接口
play_arrow
28
后台:用户管理接口
play_arrow
29
后台:使用 bcryptjs 加密数据
play_arrow
30
后台:课程接口(关联模型)
play_arrow
31
后台:章节接口(关联模型)
play_arrow
32
后台:Echarts 数据统计接口
play_arrow
33
后台:jwt 实现管理员登录
play_arrow
34
后台:使用中间件,认证接口
play_arrow
35
前台 1:首页、分类、课程接口
play_arrow
36
前台 2:章节、文章、系统信息、搜索接口
play_arrow
37
前台 3:用户注册、登录、认证接口
play_arrow
38
前台 4:与用户相关的接口
play_arrow
39
前台 5:点赞接口(多对多关联)
play_arrow
40
CORS 处理跨域
play_arrow
41
大功告成,课程答疑
play_arrow
42
部署:上线前的准备工作
play_arrow
43
部署:服务器与域名
play_arrow
44
部署:使用 SSH 远程连接服务器
play_arrow
45
部署:使用宝塔面板,安装 Nginx、MySQL 和 Node.js
play_arrow
46
部署:上传项目代码 & 配置数据库
play_arrow
47
部署:使用 PM2 部署项目
play_arrow
48
进阶:课程介绍
play_arrow
49
进阶:使用 http-errors 处理状态码
play_arrow
50
进阶:使用 Multer 上传图片到阿里云 OSS
play_arrow
51
进阶:附件管理接口
play_arrow
52
进阶:直传阿里云 OSS
play_arrow
53
进阶:自动备份数据库到阿里云 OSS
play_arrow
54
进阶:一对多关联的 Bug
play_arrow
55
进阶:使用 Promise.all 并行查询
play_arrow
56
进阶:软删除和多选操作
play_arrow
57
进阶:使用 Redis 缓存
play_arrow
58
进阶:Redis 缓存策略(上)
play_arrow
59
进阶:Redis 缓存策略(下)
play_arrow
60
进阶:图形验证码
play_arrow
61
进阶:发送邮件
play_arrow
62
进阶:RabbitMQ 消息队列(上)
play_arrow
63
进阶:RabbitMQ 消息队列(下)
play_arrow
64
进阶:使用 Winston 记录日志
play_arrow
65
进阶:收费的大会员
play_arrow
66
进阶:订单管理
play_arrow
67
进阶:支付宝支付
play_arrow
68
进阶:支付宝同步通知
play_arrow
69
进阶:支付宝异步通知
play_arrow
70
进阶:主动查询支付宝订单状态
play_arrow
71
进阶:数据库事务
play_arrow
72
进阶:数据库的乐观锁
play_arrow
73
进阶:数据库的悲观锁
play_arrow
74
进阶:定时任务
play_arrow
75
进阶:表锁与联合索引
play_arrow
76
进阶:拆分路由文件
play_arrow
77
进阶:使用 Prettier 格式化代码
play_arrow
78
进阶:使用 SSE 推送数据
play_arrow
79
进阶:微信小程序登录
play_arrow
80
进阶:微信小程序支付 APIv2
play_arrow
81
进阶:微信支付通知 APIv2
play_arrow
82
进阶:搜索引擎的安装运行 (Meilisearch 1)
play_arrow
83
进阶:使用 meilisearch 搜索引擎 (Meilisearch 2)
play_arrow
84
进阶:Sequelize 的钩子 (Meilisearch 3)
play_arrow
85
进阶:多进程运行 Node.js
play_arrow
86
番外:发送短信
play_arrow
87
番外:使用 SQL Server (MSSQL)
play_arrow
88
番外:使用 PostgreSQL
play_arrow
89
番外:使用 Prisma ORM
play_arrow
90
最终:使用 ES 6 风格新脚手架

进阶:一对多关联的 Bug

hello,这里是东哥。这节课,我们要学习的是,「长乐未央全栈系列:Node.js 项目实践」课程的第 54 回:进阶篇:一对多关联的 Bug,在这节课里,我们将探讨:

  • 一对多关联查询中,统计数错误问题
  • 一对多关联查询中,排序无效问题

在一对多关联中,如果通过include,查询了hasMany这边模型的数据,那会出现两个问题。我们现在一一来看看

问题一:统计数错误

打开routes/admin/courses.js,查询课程列表这里。这里我们用findAndCountAll来查询课程一共有多少个。现在数据库里,一共就 3 篇课程。调用一下接口,查出来的正好是 3 篇课程,这没问题。

image.png

接着,按住Ctrl或者Command键,点击getCondition方法,跳转过去。

在这里关联了分类和用户,它们两个都是属于,也就是`be...

课程介绍

课程概述: 这门课程是为零基础同学设计的全方位 Node.js 入门课程。我们将从最基础的概念开始,逐步引导大家掌握 Node.js 的核心知识和实践技能。课程内容包括 Node.js 的基础语法、常见模块的使用、异步编程概念、以及如何搭建完整的 Node.js 应用程序。

课程大纲:

  1. Node.js 入门:学习如何设置 Node.js 环境,并探索 Node.js 的基础语法和核心概念。
  2. MySQL 及 SQL 语句入门:介绍 MySQL 数据库的基本概念,以及如何使用 SQL 语句进行数据库操作。
  3. Express 框架入门:学习使用 Express 框架搭建 Web 应用程序,并了解路由、中间件等概念。
  4. Sequelize ORM 入门:探索 Sequelize ORM 的基本用法,以及如何在 Node.js 应用程序中进行数据库操作。
  5. 常规 API 开发方法:学习常见的 API 开发模式,包括增删改查、分页、关联查询等。
  6. 实战项目:通过一个实际的项目实例,将所学知识应用到实践中,加深对 Node.js 及相关技术的理解和掌握。

课程特点:

  • 由浅入深:适合零基础学生,从最基础的概念开始,循序渐进地学习 Node.js 及相关技术。
  • 实践导向:通过丰富的实例和项目实践,帮助学生将理论知识转化为实际应用能力。
  • 灵活性:课程内容灵活多样,学生可根据自身兴趣和需求选择深入学习的方向。

完成课程后,您将能够:

  • 理解并掌握 Node.js 的基本语法和核心概念。
  • 使用 MySQL 数据库进行基本的数据操作,并能够编写简单的 SQL 查询语句。
  • 使用 Express 框架搭建基本的 Web 应用程序,并了解常见的 Web 开发模式。
  • 使用 Sequelize ORM 进行 Node.js 应用程序的数据库操作。
  • 开发常规的 API,并掌握常见的 API 开发方法和技巧。

备注: 本课程为长乐未央全栈系列的第一门课程,同学们可以根据自身需求选择后续深入学习的方向,包括前端技术、后端开发等。

资源下载

※禁止在课程以外其他地方使用

内容索引

Adsense 广告

Adsense 广告