Express.js 教程
- Express.js 教程
简介
Express.js 是一个基于 Node.js 的快速、简洁且灵活的 Web 应用程序框架。它提供了一组强大的特性,可以帮助开发者轻松构建各种网络和移动应用程序。本教程旨在为初学者提供一个全面的 Express.js 入门指南,涵盖基础概念、安装、路由、中间件、模板引擎以及一些高级主题。 本教程假设您已经对 JavaScript 和 Node.js 有基本的了解。如果还没有,建议先学习 Node.js 教程。
前提条件
在开始之前,请确保您已安装以下软件:
- Node.js:Express.js 依赖于 Node.js 运行时环境。请从官方网站下载并安装最新版本:[[1]]
- npm 或 Yarn:Node Package Manager (npm) 是 Node.js 的默认包管理器。Yarn 是一个替代方案,也常用于管理项目依赖项。通常,安装 Node.js 时会同时安装 npm。
安装 Express.js
安装 Express.js 非常简单。您可以使用 npm 或 Yarn 通过命令行完成安装。
- 使用 npm:
```bash npm install express ```
- 使用 Yarn:
```bash yarn add express ```
安装完成后,您就可以在您的 Node.js 项目中使用 Express.js 了。
创建您的第一个 Express.js 应用程序
让我们创建一个简单的 Express.js 应用程序来演示其基本用法。
1. 创建一个名为 `app.js` 的文件。
2. 在 `app.js` 文件中,添加以下代码:
```javascript const express = require('express'); const app = express(); const port = 3000;
app.get('/', (req, res) => { res.send('Hello World!'); });
app.listen(port, () => { console.log(`应用程序正在监听端口 ${port}`); }); ```
3. 保存 `app.js` 文件。
4. 在命令行中,导航到包含 `app.js` 文件的目录,并运行以下命令:
```bash node app.js ```
5. 打开您的 Web 浏览器,并访问 `http://localhost:3000`。您应该看到页面上显示 “Hello World!”。
解释代码
- `const express = require('express');`:这行代码导入 Express.js 模块。
- `const app = express();`:这行代码创建一个 Express.js 应用程序实例。
- `const port = 3000;`:这行代码定义应用程序监听的端口号。
- `app.get('/', (req, res) => { ... });`:这行代码定义一个路由,用于处理对根路径 (`/`) 的 GET 请求。当用户访问根路径时,回调函数将被执行。
* `req`:请求对象,包含有关客户端请求的信息。 * `res`:响应对象,用于向客户端发送响应。 * `res.send('Hello World!');`:这行代码向客户端发送一个包含文本 “Hello World!” 的响应。
- `app.listen(port, () => { ... });`:这行代码启动服务器,并使其监听指定的端口。当服务器启动成功时,回调函数将被执行。
路由
路由是 Express.js 应用程序的核心。它们定义了应用程序如何响应不同的 HTTP 请求。Express.js 提供了多种路由方法,包括:
- `app.get(path, callback)`:处理 GET 请求。
- `app.post(path, callback)`:处理 POST 请求。
- `app.put(path, callback)`:处理 PUT 请求。
- `app.delete(path, callback)`:处理 DELETE 请求。
- `app.patch(path, callback)`:处理 PATCH 请求。
- `app.all(path, callback)`:处理所有 HTTP 请求。
`path` 可以是一个字符串、正则表达式或数组。`callback` 是一个函数,它接受 `req` 和 `res` 对象作为参数。
路由参数
您可以使用路由参数从 URL 中提取值。例如:
```javascript app.get('/users/:userId', (req, res) => {
const userId = req.params.userId; res.send(`用户 ID: ${userId}`);
}); ```
在这个例子中,`/:userId` 定义了一个路由参数 `userId`。当用户访问类似 `http://localhost:3000/users/123` 的 URL 时,`req.params.userId` 的值将为 “123”。
中间件
中间件是在请求和响应之间执行的函数。它们可以用于执行各种任务,例如:
- 身份验证
- 授权
- 日志记录
- 请求解析
- 错误处理
Express.js 提供了许多内置的中间件,例如:
- `express.static(root)`:用于提供静态文件,例如 HTML、CSS 和 JavaScript 文件。
- `express.json()`:用于解析 JSON 格式的请求体。
- `express.urlencoded({ extended: true })`:用于解析 URL 编码的请求体。
您还可以创建自己的自定义中间件。
```javascript function logger(req, res, next) {
console.log(`请求 URL: ${req.url}`); next();
}
app.use(logger); ```
在这个例子中,`logger` 是一个自定义中间件,它记录请求 URL,然后调用 `next()` 函数将请求传递给下一个中间件。
模板引擎
模板引擎允许您使用动态数据生成 HTML 页面。Express.js 支持多种模板引擎,例如:
- Pug (以前称为 Jade)
- EJS
- Handlebars
要使用模板引擎,您需要:
1. 安装模板引擎。 2. 配置 Express.js 以使用模板引擎。 3. 创建模板文件。
例如,要使用 EJS 模板引擎:
1. 安装 EJS:
```bash npm install ejs ```
2. 配置 Express.js:
```javascript app.set('view engine', 'ejs'); ```
3. 创建模板文件 `views/index.ejs`:
```html <!DOCTYPE html> <html> <head> <title>EJS 示例</title> </head> <body>
Hello, <%= name %>!
</body> </html> ```
4. 在您的路由中,使用 `res.render()` 函数渲染模板:
```javascript app.get('/', (req, res) => { res.render('index', { name: 'World' }); }); ```
当用户访问根路径时,EJS 模板引擎将渲染 `views/index.ejs` 文件,并将 `name` 变量的值设置为 “World”。
错误处理
错误处理是构建健壮的 Web 应用程序的重要组成部分。Express.js 提供了几种处理错误的方法:
- **错误中间件**:您可以定义一个特殊的中间件函数,用于处理错误。错误中间件函数接受四个参数:`err`、`req`、`res` 和 `next`。
- **`next(err)`**:您可以使用 `next(err)` 函数将错误传递给下一个错误处理中间件。
```javascript app.use((err, req, res, next) => {
console.error(err.stack); res.status(500).send('Something broke!');
}); ```
高级主题
- RESTful API:构建 RESTful API。
- 数据库集成:将 Express.js 应用程序与数据库集成,例如 MongoDB 或 MySQL。
- 身份验证和授权:实现用户身份验证和授权。
- WebSocket:使用 WebSocket 构建实时应用程序。
- 部署:将 Express.js 应用程序部署到生产环境。
总结
Express.js 是一个功能强大且灵活的 Web 应用程序框架,可以帮助您快速构建各种网络和移动应用程序。本教程涵盖了 Express.js 的基本概念、安装、路由、中间件、模板引擎以及一些高级主题。希望本教程能帮助您入门 Express.js。
相关链接
- Node.js 教程
- npm
- Yarn
- Pug
- EJS
- Handlebars
- RESTful API
- MongoDB
- MySQL
- WebSocket
- 二元期权
- 技术分析
- 交易量分析
- 布林带
- 移动平均线
- 相对强弱指数 (RSI)
- MACD
- 斐波那契回撤
- 支撑位和阻力位
- 蜡烛图模式
- 风险管理
- 资金管理
- 二元期权策略
- 高低期权
- 触及期权
- 范围期权
- 60秒期权
- 二元期权平台
- 二元期权经纪商
立即开始交易
注册IQ Option(最低存款$10) 开立Pocket Option账户(最低存款$5)
加入我们的社区
订阅我们的Telegram频道 @strategybin 获取: ✓ 每日交易信号 ✓ 独家策略分析 ✓ 市场趋势提醒 ✓ 新手教育资料