什么是 Express?
Express 是一个基于 Node.js 平台的 Web 应用框架,可以帮助开发者构建 Web 应用程序和 API。它是一个小巧、灵活,而且功能强大的框架。Express 提供了一个丰富的 HTTP 请求和响应 API,同时支持视图渲染、错误处理、中间件等一系列常用功能。
Express 的安装和使用
- 安装 Node.js
要使用 Express,首先需要在本地计算机安装 Node.js。具体安装方法可以参考官方文档:https://nodejs.org/en/download/
- 创建新的项目
使用终端命令行创建一个新的项目,命令如下:
mkdir myexpressapp cd mynexpreassapp npm init
这里会生成一个新的 package.json
文件,用于管理我们项目中的依赖。
- 安装 Express
在命令行中输入以下命令,安装 Express:
npm install express --save
--save
表示将 Express 加入该项目的依赖列表当中。
- 创建一个简单的 Express 应用
在项目目录中创建一个新的文件 app.js
,输入以下代码:
-- -------------------- ---- ------- -- -- ------- -- ----- ------- - ------------------ -- -- ------- -- ----- --- - --------- -- ---- ------------ -------- ----- ---- - --------------- -------- -- -- ---- ---------------- -- -- - -------------------- --- --------- -- ---- ------- --
- 启动应用
在命令行中输入以下命令,启动应用:
node app.js
访问 http://localhost:3000
可以看到页面输出了 "Hello World!"。
Express 应用开发
下面将介绍如何使用 Express 来开发一个真实的 Web 应用。
1. 安装和配置模板引擎
在 Express 中,视图渲染使用的是模板引擎,此处以 EJS 为例。
- 安装 EJS
在项目目录中安装 EJS:
npm install ejs --save
- 修改 app.js
在 app.js
中添加以下代码:
// 引入 EJS 模块 const ejs = require('ejs') // 设置视图引擎 app.set('view engine', 'ejs')
2. 定义路由
在 Express 中,路由就是匹配 URL 和 HTTP 方法(如 GET、POST 等)的处理程序。
- 定义一个路由
在 app.js
中添加以下代码来定义一个路由:
app.get('/about', function (req, res) { res.render('about') })
其中 app.get
表示当收到 HTTP GET 请求时,会执行其回调函数。res.render
表示使用 EJS 模板引擎来渲染 about.ejs
模板文件。
- 渲染模板
可以在 views 目录下创建一个 about.ejs
文件,添加以下代码:
-- -------------------- ---- ------- ------ ------ ------------ ---------- ------- ------ --------- ------- ----- --- - ---- -- --------------- ------- -------
3. 中间件
中间件是 Express 的一大特性。它是一种能够处理 HTTP 请求和响应的函数,可以在应用程序的多个地方使用,通常用于:
- 执行请求之前的处理
- 执行请求之后的处理
- 控制请求流程
- 使用内置中间件
Express 预先定义了许多有用的中间件,例如 express.static
帮助开发者提供静态资源的编译和缓存:
app.use(express.static('public'))
这里的 public
是一个包含了静态资产的文件夹。在浏览器中访问 http://localhost:3000/images/logo.png
就能看到静态资源 logo.png
了。
- 使用自定义中间件
app.use(function (req, res, next) { console.log('Time:', Date.now()) next() })
在每个请求中,都会打印当前时间。
4. 错误处理
在开发 Web 应用程序时,错误处理是重要的一环。
- 404 页面处理
在 app.js
末尾添加以下代码:
// 处理所有未定义的路由 app.use(function(req, res, next) { res.status(404).send('Sorry, this page does not exist.') })
这段代码会匹配所有未定义的路由,并返回 "Sorry, this page does not exist."。
- 全局错误处理
使用以下代码来处理全局错误:
// 错误处理中间件 app.use(function (err, req, res, next) { console.error(err.stack) res.status(500).send('Something broke!') })
5. 实现 API
Express 同样支持实现 APIs。实现 API 的方式和实现 Web 应用程序类似。
-- -------------------- ---- ------- -- -- --- ------------------------ -------- ----- ---- - ----- -- - ------------- ----- ---- - - --- --- ----- ------- ---- -- - -------------- --
在浏览器中访问 http://localhost:3000/api/user/123
可以得到如下 JSON 结果:
{ "id": "123", "name": "Jack", "age": 20 }
总结
在本文中,我们介绍了 Express 的基本概念和使用方法,包括安装和配置模板引擎、定义路由、使用中间件、处理错误和实现 API 等。Express 是一个小巧、灵活而又功能强大的框架,可以满足大部分 Web 应用程序和 API 的需求。希望这篇文章能够帮助大家更好地理解和使用 Express,开发出更加优秀的 Web 应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6454dc59968c7c53b0899a8a