你想了解一项新技术,如果发现宁皓网有相关课程, 一定要从宁皓网开始:)下面是一个 Node.js 应用开发的学习路径,视频里出现的每一行代码,都亲手敲几遍。
准备
Node.js 就是让你用 JavaScript 语言开发应用,所以在学 Node.js 之前最好先了解一下 JavaScript 语言本身。先完成下面这两个课程。
工具
先准备一个编辑代码用的工具,可以使用 Atom。有些操作需要在命令行界面下完成,比如去为项目安装 Package,所以可以先熟悉一下在命令行。命令行界面 macOS 用户可以使用自带的终端,Windows 用户去安装一下 Cmder。系统的包管理工具可以方便的安装软件,macOS 上用 Homebrew,Windows 可以用 Chocolatey。
不用单独学这些工具的使用技巧,比如不用记住太多编辑器的快捷键,用到的时候再去查就行了。不要因为这些分散注意力,影响心情。先准备好这些工具就行,用法都非常简单。
Windows
macOS
开始
你有了 JavaScript 语言的基础,准备好了需要的工具,现在就可以正式开始学习 Node.js 了。Node.js 就是把 JavaScript 语言从浏览器里搬了出来,让你可以用它创建后端应用或者桌面应用。
1. 起步
先了解一下 Node.js 的基本用法。
- 管理安装在系统上的 Node.js
- 创建 Node.js 项目
- 使用不同版本的 Node.js
- 使用模块
- 使用内置的 Node.js 模块
- 安装第三方 Node.js 模块
- 使用第三方 Node.js 模块
- 创建与使用自定义 Node.js 模块
- nodemon:监视应用的变化自动重启应用
- Node.js 项目的版本控制
2. 核心
Node.js 本身有一些模块,这些模块提供了不同的功能。我们先来了解几个 Node.js 核心自带的有代表性的东西。学会了这些,你就可以很容易学会使用其它的模块。
- 准备
- Events
- 使用事件:EventEmitter
- 事件的参数
- 只执行一次的事件监听器
- 得到文件与目录的信息:stat
- 创建一个目录:mkdir
- 创建文件并写入内容:writeFile, appendFile
- 读取文件里的内容:readFile
- 列出目录里的东西:readdir
- 重命名目录或文件:rename
- 删除目录与文件:rmdir, unlink
- 读取文件流
- 可读流的事件
- 可写的文件流
- pipe
- 链式使用 pipe
- request
- 利用请求回来的数据
- 创建服务器
3. 包管理
Package,包。很多地方都有 Package 这个概念,在 Node.js 这里,Package 指的是一些功能模块。社区成员做了很多 Package,提供了各种功能,你可以在 npmjs 网站上找到这些包。包管理工具可以帮我们管理安装的这些包。
- 安装与升级 npm
- 在全局范围内安装与删除包
- 在本地项目内安装包
- 安装指定版本的包
- npm 配置文件:package.json
- 使用 packge.json
- 更新本地安装的包
- 使用快速的安装源:nrm
4. Express
Express 是一个非常受欢迎的包,可以用它创建 Web 应用。
5. Socket.io
用 Node.js 创建实时的应用,需要用到 Socket.io。
6. MongoDB 数据库
MongoDB 数据库跟 Node.js 配合的很好,先花点时间了解一下这种 NoSQL 的文档类型的数据库。
- 创建一个 mongo 容器
- 与数据库交互的界面:mongo shell
- 插入文档:insert
- 修改文档:update
- 删除文档:remove
- 查询文档
- 查询文档并限制返回的字段
- 指针方法:跳过, 限制, 排序
- 查询操作符
- 查询操作符:包含与不包含 - $in 与 $nin
7. Node.js 与 MongoDB
了解了 MongoDB 本身的用法,下面可以学习怎么样让它跟 Node.js 配合在一起工作。我们会用代码去操作数据库。把应用需要的数据存储在数据库里,或者从数据库里读取需要的数据。
- 安装 MongoDB
- MongoDB 图形化管理软件 Robo 3t
- Mongoose
- 连接到 MongoDB 数据库
- Schema 与数据模型
- 使用模型把数据保存到数据库里
- 读取数据库里的数据
- insertMany:同时插入多个文档
- 查询
- 更新
- 删除
8. RESTful 接口
你需要创建前端应用或者移动端的应用,你需要一个后端服务接口为应用提供数据,或者处理从前端或者移动端发送到后端的数据。这个接口有一种风格就是 RESTful。
- 用 Express 创建服务器
- 路由 Routes
- 控制器 Controllers
- 资源列表接口:GET api/events
- 创建资源接口:POST api/events
- 单个资源接口:GET api/events/:id
- 单个资源更新接口:PATCH api/events/:id
- 单个资源删除接口:DELETE api/events/:id
9. JWT:JSON Web Token
一种身份验证的方法。
10. 基于 Token 的身份验证
使用 JWT 这种 Token,在 Node.js 应用里实施验证用户身份的方法。
- 身份验证
- 准备
- 用户模型
- 用户路由与控制器
- 注册用户
- hash 用户密码
- bcrypt:加 salt 的 hash
- 存储 hash 之后的密码
- 身份验证与签发 Token
- 身份验证的 Middleware
11. 上传文件
了解一下怎么样在 Node.js 应用里处理文件的上传。
12. 测试
测试应用可以正常运行。
- 安装与准备
- mocha:测试框架
- mocha:安排测试之前与之后要做的事
- chai:断言库
- chai:should 风格的断言
- chai:expect 风格的断言
- 写一个测试
- 让测试通过
- 测试异步的方法:setTimeout
- 测试异步的方法:http
- 测试方法的异常
- Sinon:Spies 跟踪函数的调用
- Sinon:Stubs 模拟函数的行为
评论
这套课程可以的,很强大
7 年 4 个月 以前
找时间看看吧 :)
7 年 4 个月 以前
会的,皓哥,我跟源泉一起开公司了,嘿嘿,需要不断在你的网站学习技术啊
7 年 4 个月 以前
加油干 :)
7 年 4 个月 以前
一直都有认真看,感觉是不是少了一个完整的项目?用来贯穿所有知识点呢?
7 年 4 个月 以前
可以有 :)
7 年 4 个月 以前
我终于发现了少了一讲角色的权限管理
7 年 4 个月 以前
以后可以补上 :)
7 年 4 个月 以前