# Nodejs应用开发课件资料 **Repository Path**: zhangziyang110/nodejs-application-development ## Basic Information - **Project Name**: Nodejs应用开发课件资料 - **Description**: nodejs应用开发课程资源 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-09-01 - **Last Updated**: 2025-12-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 课程基本信息 ## 一、基本信息 ### 1. 课程学时 - 共72学时 ### 2.课程类型 - 专业基础课 必修课 ## 二、课程在专业中的地位 ### 1.人才培养 - 以培养实践开发能力为重点,结合理论知识,培养应用型工程技术人才 ### 2. 职业发展 - 进一步理解web开发,明白后端开发 - 构建完整的Web应用,具有全栈开发能力,增加职业竞争力 - 在今后职业发展中学习前端框架更容易 ### 3.关联课程 - Node.js使用JavaScript语言编写程序,在有HTML,CSS,JavaScript课程学习的基础后,学习Node.js可以更容易。 ## 三、课程目标 ### 1. Node.js基础知识 - 掌握Node.js常用核心模块Buffer,fs,http等,事件循环、非阻塞I/O等基础概念 ### 2. 理解异步编程 - 理解Node.js的异步编程模型,能够使用回调、Promise、async/await等方式进行异步编程 ### 3. 熟练使用Express框架 - 掌握Express框架的使用,能够搭建基本的Web服务器并处理HTTP请求和路由。 ### 4. 数据操作与数据库交互 - 能够使用Node.js连接数据库,与数据库进行交互,进行数据的增删改查等基本数据库操作。 ### 5. 用户认证和安全性 - 了解如何实现用户认证和授权,并掌握基本的安全性措施,防范常见的Web攻击。 ### 6. 学会持续学习 ## 四、教材及参考资料 ### 1.教材 ![jiaocai_img.png](课程信息/jiaocai_img.png) - 《Node.js应用开发》,人民邮电出版社,ISBN:9787115569639,2021年11月. ### 2.参考资料 - 《Node.js开发实战》,清华大学出版社 ,ISBN:9787302488149 - [gitee码云](https://gitee.com/zhangziyang110/nodejs-application-development) https://gitee.com/zhangziyang110/nodejs-application-development ## 五、课程章节 ### 单元1 Node.js认知 **学习目标:** 了解Node.js的基本概念、特点和应用场景,掌握开发环境的搭建和第一个Node.js程序的编写。 **主要内容:** - Node.js的定义、发展历史和核心特点(事件驱动、非阻塞I/O) - Node.js与JavaScript的区别,运行环境的差异 - Node.js环境安装(Node.js和Visual Studio Code) - 编写第一个Node.js程序,使用VSCode和命令行运行 - Console模块常用方法(log、error、warn、table、time等) - 互动程序开发(欢迎消息打印程序、猜数字游戏) **实践项目:** 斐波那契数列计算程序 --- ### 单元2 模块机制 **学习目标:** 理解模块化编程思想,掌握Node.js的CommonJS模块系统,熟练使用NPM等包管理工具。 **主要内容:** - 模块化编程基础概念和优势(代码复用、分而治之、团队协作) - CommonJS规范介绍,三种模块类型(核心模块、第三方模块、自定义模块) - 模块导出与导入详解(module.exports、exports的区别) - 模块加载机制(加载优先级、文件扩展名识别、目录作为模块) - 包管理器实战(NPM、Yarn、PNPM的对比和使用) - package.json常用属性说明 - ES6模块与CommonJS的差异 - 模块缓存机制和循环依赖处理 **实践项目:** 文件处理工具集、学生成绩管理系统 --- ### 单元3 Node.js异步编程 **学习目标:** 深刻理解异步编程的核心概念,掌握回调函数、Promise、async/await等异步编程技术。 **主要内容:** - 异步编程基础概念(阻塞与非阻塞、同步与异步) - Node.js事件循环机制(六个阶段详解) - 回调函数的使用和回调地狱问题 - 事件发布/订阅模式(EventEmitter的使用) - Promise详解(三种状态、基础语法、高级用法) - async/await语法(基础用法、高级用法、错误处理) - 任务队列与执行优先级(微任务与宏任务) - process模块深入应用(环境变量、命令行参数处理) **实践项目:** 异步文件处理器、命令行计算器 --- ### 单元4 Buffer缓存区和文件系统 **学习目标:** 掌握Buffer缓冲区的概念和使用,理解Node.js文件系统fs模块的核心API,熟悉流操作和路径处理。 **主要内容:** - Buffer缓冲区(创建方式、编码问题、安全写入中文) - fs文件系统(文件写入、读取、删除的同步和异步方法) - 流(Stream)操作(管道流、链式流、压缩解压) - path模块常用函数(basename、extname、join、resolve等) - __filename和__dirname的使用 - 文件夹操作(创建、读取、删除、文件信息获取) - 大文件处理的最佳实践 **实践项目:** CSV转JSON、文件换行符统计、文件过滤工具 --- ### 单元5 构建Web应用 **学习目标:** 掌握使用Node.js原生http模块构建Web服务器,处理HTTP请求和响应。 **主要内容:** - HTTP模块基础(创建服务器、处理请求和响应) - 路由处理(根据URL路径返回不同内容) - 静态资源服务(文件读取、流式传输) - 动态页面数据(通过URL传递参数、POST请求体处理) - 文件上传服务 - DNS查询和网络编程基础 **实践项目:** HTTP静态资源服务器、登录验证系统 --- ### 单元6 Express框架(web服务框架) **学习目标:** 熟练使用Express框架快速搭建Web服务器,掌握路由、中间件、请求处理等核心功能。 **主要内容:** - Express认识与安装(框架介绍、项目初始化) - 路由与参数(GET、POST、路由参数、查询参数) - 响应设置(res.send、res.json、res.redirect等) - 中间件体系(全局中间件、路由级中间件、内置中间件) - 静态资源服务(express.static的使用) - 请求体解析(JSON、表单数据) - 文件上传(multer的使用) - CORS跨域处理 - Router模块化(路由拆分和管理) - 会话控制与鉴权(Cookie、Session、Token) **实践项目:** 简易留言板、用户登录系统 --- ### 单元7 Express模板引擎 **学习目标:** 了解模板引擎的作用,掌握EJS模板引擎的使用,实现数据与视图的分离。 **主要内容:** - 模板引擎的作用和优势 - EJS模板引擎基础(安装、配置、常用语法) - 在Express中使用EJS(视图渲染、数据传递) - 模板语法(变量输出、条件判断、循环遍历) - 局部模板和布局(include、partial的使用) - Express Generator脚手架工具的使用 **实践项目:** 学生列表页面、动态内容展示 --- ### 单元8 数据库应用开发 **学习目标:** 掌握Node.js连接MySQL数据库的方法,实现数据的增删改查操作,封装数据库模块。 **主要内容:** - MySQL数据库安装和配置 - mysql2驱动的选择和使用(基础连接、Promise方式、连接池) - 数据库连接配置(三种连接方式对比) - CRUD操作详解(查询、插入、更新、删除) - 参数化查询防止SQL注入 - 数据库模块封装(配置分离、连接池管理) - 在Express中集成数据库操作 - 用户认证系统开发(登录、注册、会话管理) **实践项目:** 用户管理系统、登录功能前后端集成 --- ### 单元9 项目实战(待办事项应用) **学习目标:** 综合运用所学知识,从零开始构建一个完整的Web应用,包括用户认证、数据管理和前后端交互。 **主要内容:** - 项目环境配置(express-generator脚手架、依赖安装) - 登录功能实现(前端页面设计、后端接口开发、Session管理) - 验证码功能(svg-captcha的使用) - 待办事项表结构设计 - 待办事项列表功能(查询、展示、动态渲染) - 待办事项增删改查(添加、删除、编辑、状态更新) - 模态框编辑功能(Bootstrap模态框、数据交互) - 用户身份验证和权限控制 - 时间格式处理和分页功能 - 项目部署和优化 **技术栈:** Node.js + Express + MySQL + EJS + Bootstrap + jQuery **项目功能:** - 用户注册和登录(含验证码) - 待办事项的增删改查 - 任务状态管理(完成/未完成) - 任务详情编辑(模态框) - 用户数据隔离(基于Session) - 响应式界面设计 **实践成果:** 完整的待办事项管理系统,具备用户认证、数据持久化和完整的CRUD功能 ### 项目实战 应用展示 ![yingyong1.png](课程信息/yingyong1.png) ![yingyong2.png](课程信息/yingyong2.png) ## 六、考核评价方法 - 平时成绩占比:10% - 课后作业占比:20% - 阶段一占比:10% - 阶段二占比:10% [//]: # (- 实验占比:10%) - 期末成绩占比:50%