Node.js 框架 Express 入门教程

什么是 Express?

Express 是 Node.js 的一个强大的 Web 应用程序框架,它提供了一组丰富的特性来构建 Web 应用程序,包括路由、模板引擎、中间件等。Express 是目前最受欢迎的 Node.js Web 应用程序框架之一,它的设计简洁、易于使用,同时也具有很高的性能和可扩展性。

安装 Express

在开始学习 Express 之前,我们需要先安装它。可以使用 npm(Node.js 包管理器)来安装 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 模块:

然后,在 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