什么是 Express?
Express 是 Node.js 的一个强大的 Web 应用程序框架,它提供了一组丰富的特性来构建 Web 应用程序,包括路由、模板引擎、中间件等。Express 是目前最受欢迎的 Node.js Web 应用程序框架之一,它的设计简洁、易于使用,同时也具有很高的性能和可扩展性。
安装 Express
在开始学习 Express 之前,我们需要先安装它。可以使用 npm(Node.js 包管理器)来安装 Express,只需要在命令行中输入以下命令:
npm install express
创建一个 Express 应用程序
接下来,我们将创建一个简单的 Express 应用程序。首先,我们需要在项目文件夹中创建一个名为 app.js
的文件。然后,在 app.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!') })
在上面的代码中,我们首先引入了 Express 模块,并创建了一个 Express 应用程序实例。然后,我们定义了一个路由,当用户访问根路径时,返回一个字符串 "Hello World!"
。最后,我们启动应用程序,监听端口 3000
,并在控制台输出一条消息。
现在,我们可以在命令行中运行 node app.js
命令来启动应用程序。然后,在浏览器中访问 http://localhost:3000
,你应该能够看到一个包含字符串 "Hello World!"
的页面。
路由
路由是 Express 中的一个重要概念,它用于处理客户端请求并返回相应的响应。在 Express 中,路由由一组 HTTP 请求方法(如 GET、POST、PUT、DELETE 等)和一个 URL 路径组成。
在上面的示例中,我们定义了一个 GET 请求的路由,它的 URL 路径为 /
。这意味着当用户访问根路径时,将触发这个路由,并返回一个字符串 "Hello World!"
。
下面是一个更复杂的路由示例:
app.get('/users/:id', (req, res) => { const id = req.params.id res.send(`User ID: ${id}`) })
在上面的代码中,我们定义了一个 GET 请求的路由,它的 URL 路径为 /users/:id
。:id
是一个参数,它可以在路由处理程序中使用。当用户访问 /users/123
时,Express 将提取参数值 123
,并将其传递给路由处理程序。在这个示例中,我们将参数值用于构建一个字符串,并将其作为响应返回。
中间件
中间件是 Express 中的另一个重要概念,它用于处理 HTTP 请求和响应。中间件是一个函数,它可以访问请求和响应对象,并可以执行一些操作,例如修改请求或响应、调用下一个中间件等。
Express 中的中间件可以是全局的,也可以是路由特定的。全局中间件将在每个请求上执行,而路由特定的中间件将仅在匹配的路由上执行。
下面是一个示例,演示如何使用中间件来记录每个请求的时间戳:
const logger = (req, res, next) => { console.log(`Time: ${new Date().toISOString()}`) next() } app.use(logger) app.get('/', (req, res) => { res.send('Hello World!') })
在上面的代码中,我们定义了一个名为 logger
的中间件函数。这个函数将在每个请求上执行,并将当前时间戳记录到控制台中。然后,我们使用 app.use()
方法将中间件注册到应用程序中。这意味着该中间件将在每个请求上执行。最后,我们定义了一个 GET 请求的路由,当用户访问根路径时,返回一个字符串 "Hello World!"
。
模板引擎
Express 支持多种模板引擎,例如 EJS、Handlebars、Pug 等。模板引擎可以帮助我们动态地生成 HTML 页面,使我们能够更轻松地构建 Web 应用程序。
下面是一个示例,演示如何使用 EJS 模板引擎来生成动态 HTML 页面:
首先,我们需要安装 EJS 模块:
npm install ejs
然后,在 app.js
文件中输入以下代码:
const express = require('express') const app = express() app.set('view engine', 'ejs') app.get('/', (req, res) => { const data = { title: 'Express Tutorial', message: 'Welcome to Express Tutorial!' } res.render('index', data) }) app.listen(3000, () => { console.log('Example app listening on port 3000!') })
在上面的代码中,我们首先引入了 Express 模块,并创建了一个 Express 应用程序实例。然后,我们设置了模板引擎为 EJS。接下来,我们定义了一个 GET 请求的路由,当用户访问根路径时,使用 res.render()
方法将渲染 views/index.ejs
模板,并将数据对象 data
传递给模板。最后,我们启动应用程序,监听端口 3000
,并在控制台输出一条消息。
最后,我们需要创建一个名为 index.ejs
的模板文件。在 views
文件夹中创建一个名为 index.ejs
的文件,并输入以下代码:
<!DOCTYPE html> <html> <head> <title><%= title %></title> </head> <body> <h1><%= message %></h1> </body> </html>
在上面的代码中,我们定义了一个 HTML 页面,它包含一个标题和一个消息。在标题和消息中,我们使用了 EJS 模板语法 <%= ... %>
,它将在渲染时被替换为相应的数据值。
现在,我们可以在命令行中运行 node app.js
命令来启动应用程序。然后,在浏览器中访问 http://localhost:3000
,你应该能够看到一个包含标题和消息的 HTML 页面。
总结
本文介绍了 Node.js 框架 Express 的基本概念和用法。我们学习了如何创建一个 Express 应用程序、定义路由、使用中间件和模板引擎。这些知识对于开发 Web 应用程序非常重要,希望本文能够对你有所帮助。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65c5a219add4f0e0ff02bb4d