思维导图
第一章:介绍Express
什么是Express
Express是一个流行的基于Node.js的Web应用程序框架,它提供了一个简单而灵活的方式来构建Web应用程序和API。Express具有轻量级、模块化和可扩展的特点,因此被广泛用于快速、高效地开发Web应用程序。
Express框架提供了许多常用的Web开发功能,如路由、中间件、模板引擎、请求处理、错误处理
等,可以让开发人员更加专注于业务逻辑的实现。同时,Express框架也很容易与其他Node.js模块进行集成,充分利用Node.js生态圈的各种资源。
Express优点
Express作为一种流行的Web应用程序框架,具有以下优点:
- 轻量级:Express的设计理念是轻量级、简单、灵活,因此它不会在项目中增加太多代码。
- 清晰的路由处理:Express提供了清晰的路由处理,开发者可以轻松创建路由处理程序,以及多个中间件来处理请求。
- 中间件:中间件是Express的一个重要特点,它允许您在请求和响应之间添加处理逻辑,以实现许多功能,如身份验证、请求日志记录等等。
- 可扩展:Express具有强大的插件系统,可以轻松地添加其他组件,如模板引擎、数据库驱动器等。
- 较少的学习曲线:由于Express设计简单,它对新手也很友好,您不需要很长时间来学习Express编程。
这些优点使得Express成为一个流行的选择,特别是对于需要快速构建Web应用程序和API的开发人员来说。
Express应用场景
Express适用于许多Web应用程序开发和API构建场景,特别是那些希望快速建立起可靠、安全且高效
的Web应用程序的场景。
以下是Express的一些应用场景:
- 快速构建API: Express是开发
RESTful API
的理想选择,它提供了清晰的路由和映射关系,允许开发人员通过中间件轻松地添加身份验证、日志记录等功能。 - 前端应用程序:Express可以
与React、Angular等前端框架很好地集成
,帮助前端开发人员构建完整的Web应用程序。 - 单页应用程序: Express的路由特性非常适合
构建单页应用程序
,这些应用程序将路由转换成Ajax请求,并根据Ajax响应更新页面。 - 静态网站: Express提供了静态文件托管功能,可以将静态网站部署到云上,极大地简化了网站部署的过程。
- 实时应用程序: Express也适用于实时应用程序,例如
游戏、聊天应用程序
等,因为它提供了WebSocket支持。
综上所述,Express适用于许多Web应用程序和API场景,是一个快速、高效和可扩展的框架。
第二章:安装和基础用法
安装Express
安装Express可以通过 npm 命令行工具来完成,具体步骤如下:
- 安装 Node.js:请前往官方网站下载并安装最新版本的 Node.js。
- 初始化应用程序:在应用程序目录下打开命令行终端,创建 package.json 文件,这个文件用于管理应用依赖的包。在终端中输入以下命令:
npm init
按照提示输入你的应用程序的名称、版本、描述等信息,完成初始化。
- 安装 Express:在终端中运行以下命令安装 Express 库:
npm install express --save
–save 参数将 Express 添加到 package.json 文件中的依赖清单,方便其他开发人员或服务器部署程序的自动安装。
- 创建并运行应用程序:在应用程序目录下创建一个名为 app.js 或 index.js 的 JavaScript 文件,并在其中添加以下示例代码:
const express = require('express') const app = express() app.get('/', (req, res) => { res.send('Hello World!') }) app.listen(3000, () => { console.log('Example app listening on port 3000!') })
这段代码创建了一个 Express 应用程序,并在根路由上监听 HTTP GET 请求。当请求到达时,它会返回 “Hello World!” 字符串。
- 在终端中执行以下命令启动应用程序:
node app.js
或者
node index.js
如果一切正常,你将在终端中看到 “Example app listening on port 3000!” 的输出,然后可以在浏览器中访问 “http://localhost:3000” 来查看应用程序的响应。
以上是在 Windows 操作系统下的示例命令,Mac OS 和 Linux 用户执行类似的命令,具体命令可能因操作系统和 Node.js 版本不同而有所差异。
搭建第一个Express应用
以下是搭建一个基本的Express应用的步骤:
- 首先我们需要在电脑上安装Node.js,可以在https://nodejs.org/en/官网下载最新版本的Node.js。
- 打开命令行工具,创建一个新的文件夹,我们假设文件夹名为myapp
- 在命令行工具中进入myapp文件夹,然后输入以下命令进行初始化:
npm init
- 接下来我们需要安装Express框架,输入以下命令:
npm i express
- 创建一个名为index.js的文件,输入以下代码:
const express = require('express') const app = express() app.get('/', (req, res) => { res.send('Hello World!') }) app.listen(3000, () => { console.log('Example app listening on port 3000!') })
- 最后,在命令行工具中输入以下命令运行应用程序:
node index.js
- 打开浏览器,访问http://localhost:3000/,你应该看到 “Hello World!” 的输出。
恭喜,你已经成功搭建了你的第一个Express应用!
中间件的使用
中间件是Express框架中的一个非常重要的概念,它允许处理HTTP请求和响应之前进行一系列的操作,例如:身份验证、记录日志
等等。
下面我将介绍一下中间件的使用:
- 创建一个中间件函数,它接收三个参数:请求对象req,响应对象res和next函数。next函数用于指示Express应用程序将处理下一个中间件或路由。
const myMiddleware = (req, res, next) => { console.log('This is my middleware!'); next(); }
- 在应用程序中使用中间件函数,可以通过以下方法使用:
app.use(myMiddleware);
这将在所有路由之前运行myMiddleware
函数。
- 你也可以在特定路由中使用中间件函数。例如,以下代码在处理初始请求之前运行myMiddleware函数:
app.get('/', myMiddleware, (req, res) => { res.send('Hello World!'); });
- Express中内置了许多中间件,例如:body-parser、morgan、cors等,你可以通过npm安装并使用。
以上就是中间件的使用步骤,希望可以帮助你更好地理解和使用Express框架。
第三章:路由和控制器
路由的原理
路由是指将一个URL请求映射到相应的处理程序或控制器上
,是一个Web框架中非常重要的概念。在Express框架中,路由允许我们定义应用程序的端点(URIs)和如何响应客户端请求。
下面是路由的实现原理:
- Express应用程序中定义的每一个路由都有一个HTTP方法(GET、POST、PUT、DELETE)和一个URL路径。
- 当客户端浏览器发起HTTP请求时,Express服务器会根据该HTTP请求的方法和路径寻找匹配的路由。
- 如果找到了匹配的路由,服务器将执行相应的处理程序或控制器,并返回客户端响应。
- 如果服务器无法找到匹配的路由,则向客户端发送404响应。
例如,以下代码中,我们定义了一个路由路径为’/hello’,并指定使用GET方法来响应该路由:
app.get('/hello', function(req, res) { res.send('Hello World!'); });
当浏览器请求’/hello’路径时,Express将寻找匹配的路由,并执行上述代码中指定的处理程序,最后返回一个包含"Hello World"字符串的响应给客户端浏览器。
基于上述原理,我们可以在Express应用程序中定义任何数量的路由以及HTTP请求方法来处理客户端请求。同时,路由的使用还可以帮助我们更好地组织应用程序的代码结构和清晰地定义应用程序的功能。
路由的基本用法
在Express应用程序中,使用路由来定义应用程序的端点和如何响应客户端请求。
下面是路由的基本用法:
1. 定义路由
在Express应用程序中,使用HTTP方法(GET、POST、PUT、DELETE等)和URL路径来定义路由,如下示例定义了一个GET方法的路由:
app.get('/', function(req, res) { res.send('Hello World!'); });
在上面的例子中,我们定义了一个路由"/",使用GET方法并指定一个回调函数。回调函数中接收两个参数,req和res分别代表请求对象和响应对象,这里我们将"Hello World!"字符串发送给客户端作为响应。
2. 路由参数
路由参数可用于在路由路径中类似动态映射的方式来接收参数值。例如,以下路由定义了一个带参数的路由:
app.get('/users/:id', function(req, res) { res.send('User id is: ' + req.params.id); });
在上面的例子中,我们定义了一个"/users/:id"的路由,其中":id"是一个参数占位符,可以在路由路径中通过req.params.id参数获取到值。例如,当客户端请求"/users/123"时,我们的代码会响应"User id is: 123"字符串。
3. 路由处理函数
路由处理函数可以是一个函数,也可以是多个函数组成的数组。当我们定义多个路由处理函数时,它们会依次执行。例如,以下代码定义了一个处理函数数组并使用它作为路由处理函数:
let firstHandler = function(req, res, next) { console.log('This is the first handler'); next(); }; let secondHandler = function(req, res) { res.send('Hello World!'); }; app.get('/', [firstHandler, secondHandler]);
在上面的例子中,我们定义了两个处理函数,第一个处理函数会打印一个日志并执行next()向下一个处理函数进行传递,第二个处理函数则将"Hello World!"字符串发送给客户端。
在Express应用程序中,路由是一种非常灵活和强大的机制,它可以帮助我们更好地组织应用程序的代码结构和定义应用程序的功能。
路由的进阶用法
在Express应用程序中,路由有许多进阶用法。
下面是一些常见的进阶用法:
1. 链式路由
链式路由允许我们在一个路由上定义多个处理函数,这些处理函数都会按照顺序执行。
例如,以下代码演示如何使用链式路由:
app.route('/users') .get(function(req, res) { res.send('Get a user'); }) .post(function(req, res) { res.send('Create a user'); }) .put(function(req, res) { res.send('Update a user'); }) .delete(function(req, res) { res.send('Delete a user'); });
在上面的例子中,我们使用route()方法定义一个路由"/users",并对其使用链式路由。在链式路由中,我们使用get()、post()、put()和delete()方法来定义不同的HTTP方法的处理函数。
【利用AI让知识体系化】入门Express框架(二)https://developer.aliyun.com/article/1426062