ExpressJS - Hello World
Express.js - 您的第一个应用程序
Section titled “Express.js - 您的第一个应用程序”搭建好开发环境后,是时候构建您的第一个 Express 应用程序了。这个经典的“Hello World”示例将展示使用 Express 创建 Web 服务器的基本概念。
在您的项目目录(hello-world)中,创建一个名为 index.js 的新文件。这将是您应用程序的入口点。
index.js
Section titled “index.js”// 1. 导入 Express 库import express from 'express';
// 2. 创建一个 Express 应用程序实例const app = express();
// 3. 定义端口号。使用环境变量,否则默认为 3000const PORT = process.env.PORT || 3000;
// 4. 定义根 URL ('/') 的路由// 处理对主页的 GET 请求app.get('/', (req, res) => { // 5. 向客户端发送响应 res.send('Hello, Modern World!');});
// 6. 启动服务器并监听传入连接app.listen(PORT, () => { console.log(`Server is running and listening on http://localhost:${PORT}`);});代码解析与现代实践:
import express from 'express':我们使用现代的 ES Module 语法来导入包。要启用此功能,请在您的package.json文件中添加"type": "module"。const app = express():我们使用const是因为app变量不会被重新赋值。const PORT = process.env.PORT || 3000:这是一个重要的最佳实践。它允许端口由部署环境(如 Heroku 或 Docker)设置,在本地开发时回退到3000。这避免了硬编码配置值。app.get('/', (req, res) => { ... }):我们使用箭头函数作为回调函数,这是一种简洁的现代语法。
保存文件,然后使用我们之前设置的 dev 脚本从终端运行您的服务器:
npm run dev您应该会看到消息 Server is running and listening on http://localhost:3000。现在,打开您的 Web 浏览器并导航到 http://localhost:3000。您将看到文本“Hello, Modern World!”。
由于您正在使用 nodemon,现在可以更改 index.js 中的响应消息,例如,改为 res.send('Welcome to Express.js!')。当您保存文件时,nodemon 将自动重启服务器。只需刷新浏览器即可看到更新后的消息。
应用程序的工作原理
Section titled “应用程序的工作原理”让我们剖析这个简单应用程序中的核心 Express 概念。
路由:app.get(path, callback)
Section titled “路由:app.get(path, callback)”路由决定了应用程序如何响应客户端对特定端点的请求,该端点由 URI(或路径)和特定的 HTTP 请求方法(GET、POST 等)组成。
我们的代码 app.get('/', ...) 告诉 Express:“当收到对根路径 (/) 的 GET 请求时,执行此回调函数。”
回调函数始终接收两个主要参数:
req(请求对象):一个包含传入 HTTP 请求信息的对象,例如请求头、查询参数和请求体。res(响应对象):一个用于向客户端发送响应的对象。
发送响应:res.send()
Section titled “发送响应:res.send()”res.send() 函数用于发送 HTTP 响应。Express 在这方面很智能;它可以发送字符串、JSON 对象、数组或 Buffer。它还会自动为您设置 Content-Type 头部(例如,字符串为 text/html,对象为 application/json)。
启动服务器:app.listen(port, callback)
Section titled “启动服务器:app.listen(port, callback)”此函数将应用程序绑定到机器上的一个端口,并启动服务器以监听连接。一旦服务器准备就绪,可选的回调函数就会执行——在我们的示例中,它会向控制台输出一条确认消息。
后续步骤与最佳实践
Section titled “后续步骤与最佳实践”- 分离路由:对于大型应用程序,您应该将路由移动到单独的文件中,以保持
index.js清晰。为此,您可以使用express.Router。 - 中间件:探索中间件函数,它们是能够访问
req和res对象并可以执行代码、进行更改或结束请求-响应周期的函数。它们是任何 Express 应用程序的支柱。 - 错误处理:实现一个集中的错误处理程序,以优雅地捕获和处理应用程序中发生的任何错误。