1. Server-side Web Programming
1.1 Client-side Programming
- 采用client-side programming时,所有代码和数据都在本地执行
- 主要用于UI渲染和用户交互
- 本地运算处理,响应速度快
- 本地数据容易被修改
1.2 Server-side Programming
- 采用server-side programming时
- 主要处理业务逻辑,数据计算,数据库操作
- 网络延迟较高,因此一般不用于处理对延迟敏感的任务
- 数据由服务器集中管理,跨设备和位置共享数据
2. Introduction to Node.js
- Node.js是一个免费的开源服务器环境
- 在服务端上使用JavaScript
- 快速且性能卓越,拥有庞大的社区和极高的普及度
2.1 Node.js can do
- 可以生成动态页面内容
- 可以在服务器上创建/打开/读取/写入/删除/关闭文件
- 可以收集表单数据
- 可以对数据库进行添加/删除/修改等操作
Node.js File
- 包含在特定事件发生时将执行的任务对应代码
- 必须在服务器上初始化后才能生效
- 扩展名为
.js(通常是CommonJS或ESM module)
3. Asynchronous Programming
3.1 Synchronous vs Asynchronous Programming
- Synchronous programming(同步编程): 按顺序进行,等待前一个任务完成后再进行下一个任务
- 其执行流程可预测
3.2 Callbacks and Callback Hell
3.3 Promises
3.4 Async/Await
3.5 Comparison of Asynchronous Programming Models
4. Node.js Modules
4.1 Built-in and Custom Modules
4.2 Import and Export
4.3 CommonJS vs ES Modules (ESM)
5. Node.js HTTP Modules
5.1 Creating an HTTP Server
5.2 HTTP Requests and Responses
5.4 URL and Query String Parsing
6. Node.js File I/O
6.1 File System Module
6.2 Reading and Creating Files
6.3 Updating, Deleting, and Renaming Files
7. Node Package Management
7.1 Packages and NPM
7.2 Local and Global Installation
7.3 Package.json Configuration
7.4 Semantic Versioning
8. Express.js
8.1 Introduction to Express.js
8.2 Express.js Installation and Setup
8.3 Creating a Basic Express Application
8.4 Express.js Routing and HTTP Methods
8.5 Router Modules
8.6 Dynamic Routes and URL Parameters
8.7 Pattern-Matched Routes
8.8 Middleware and Execution Order
8.9 Serving Static Files
8.10 Multiple Static Directories and Virtual Path Prefixes
链接