25 Express框架安装

25 Express框架安装

Express是基于 Node.js 的一个极简、灵活的 web 应用程序框架,为构建 web 应用程序和 API 提供了一组强大的功能。本节将指导你完成 Express 框架的安装。

环境准备

首先,确保你已经安装了 Node.js。如果尚未安装,可以前往 Node.js 官网 下载并安装最新版本。安装完成后,你可以打开命令行终端,输入以下命令以检查 Node.js 和 npm(Node.js 的包管理器)的版本:

1
2
node -v
npm -v

如果命令返回了版本号,说明安装成功。

创建项目目录

接下来,我们需要创建一个新的项目目录。可以使用以下命令创建一个名为 my-express-app 的目录,并进入该目录:

1
2
mkdir my-express-app
cd my-express-app

初始化项目

在项目目录中,执行以下命令以初始化一个新的 Node.js 项目。该命令会创建一个 package.json 文件:

1
npm init -y

-y 参数表示自动接受所有默认设置。

安装 Express

现在,我们可以通过 npm 来安装 express 框架。在命令行中执行:

1
npm install express

安装完成后,你会看到 node_modules 目录中出现了 express 文件夹,以及 package.json 文件中出现了 express 的依赖项。

创建基本的 Express 应用

为了验证 Express 是否安装成功,我们可以创建一个简单的应用程序。首先,在项目目录中创建一个名为 app.js 的文件,并在其中添加以下代码:

1
2
3
4
5
6
7
8
9
10
11
const express = require('express');
const app = express();
const PORT = 3000;

app.get('/', (req, res) => {
res.send('Hello Express!');
});

app.listen(PORT, () => {
console.log(`Server is running at http://localhost:${PORT}`);
});

代码解析

  • const express = require('express');:导入 Express 模块。
  • const app = express();:创建一个 Express 应用实例。
  • app.get('/', (req, res) => {...}):定义一个路由,当用户访问根路径 / 时,返回字符串 Hello Express!
  • app.listen(PORT, () => {...}):启动服务器,监听指定的端口(此处为 3000)。

启动应用

在命令行中运行以下命令来启动你的 Express 应用:

1
node app.js

如果一切正常,你将看到输出:

1
Server is running at http://localhost:3000

之后,打开浏览器,访问 http://localhost:3000,你应该能看到页面显示 Hello Express!

总结

通过以上步骤,我们成功安装了 Express 框架并创建了一个基本的 web 应用。你现在可以开始使用 Express 构建更复杂的应用程序和 API。继续探索 Express 的强大功能吧!

26 Node.js 基本路由使用

26 Node.js 基本路由使用

在 Node.js 中,路由是处理 HTTP 请求的方式之一。本文将通过实例介绍基本路由的使用。

创建一个简单的 HTTP 服务器

首先,我们需要使用 Node.js 创建一个简单的 HTTP 服务器,并在其中设置基本路由。以下是服务器的基本代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const http = require('http');

// 创建一个HTTP服务器
const server = http.createServer((req, res) => {
// 设置响应头
res.setHeader('Content-Type', 'text/plain');

// 路由处理
if (req.url === '/') {
res.statusCode = 200;
res.end('欢迎来到首页');
} else if (req.url === '/about') {
res.statusCode = 200;
res.end('关于我们');
} else {
res.statusCode = 404;
res.end('找不到页面');
}
});

// 服务器监听端口
server.listen(3000, () => {
console.log('服务器正在运行,访问 http://localhost:3000');
});

在上述代码中,我们使用 http.createServer 方法创建了一个服务器。通过 req.url 来判断用户请求的 URL,从而执行不同的操作。

使用 Express 框架简化路由

虽然我们可以使用原生 Node.js 创建路由,但使用框架如 Express 可以使我们的代码更简洁、更易于管理。下面是使用 Express 创建基本路由的示例:

首先,确保你已经安装了 Express

1
npm install express

然后,可以使用以下代码创建一个简单的 Express 应用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const express = require('express');

const app = express();

// 定义基本路由
app.get('/', (req, res) => {
res.send('欢迎来到首页');
});

app.get('/about', (req, res) => {
res.send('关于我们');
});

// 404 处理
app.use((req, res) => {
res.status(404).send('找不到页面');
});

// 启动服务器
const PORT = 3000;
app.listen(PORT, () => {
console.log(`服务器正在运行,访问 http://localhost:${PORT}`);
});

在这个 Express 的例子中,我们使用了 app.get 方法来定义 GET 请求的路由。通过传递请求和响应的处理函数,我们可以轻松返回相应的数据。

路由参数

有时候,我们需要处理动态路由参数,例如用户 ID。以下是如何在 Express 中处理路由参数的示例:

1
2
3
4
app.get('/user/:id', (req, res) => {
const userId = req.params.id;
res.send(`用户ID是: ${userId}`);
});

在这个例子中,当访问 /user/123 时,响应会显示 用户ID是: 123

结论

通过以上内容,我们了解了如何在 Node.js 中创建基本路由,无论是在原生 Node.js 中,还是使用 Express 框架。学习路由是构建 Web 应用的关键一步,掌握之后,你可以扩展功能,处理更复杂的请求。希望这个教程对你有所帮助!

27 中间件的定义

27 中间件的定义

中间件的概念与使用

在Node.js中,尤其是使用Express框架时,中间件是一个非常重要的概念。中间件是一个函数,它有权访问请求对象(req)、响应对象(res)和应用程序的请求-响应周期中的下一个中间件函数。中间件可以用来执行多种任务,如请求的解析、用户认证、错误处理等。

一个中间件函数的基本签名是:

1
2
3
4
function(req, res, next) {
// 执行某些操作
next(); // 调用下一个中间件
}

next是一个函数,在中间件中调用它可以将控制权传递给下一个中间件。如果不调用next,请求将会挂起,客户端将不会收到响应。

中间件的使用

在Express应用程序中,您可以使用app.use()来注册中间件。例如,创建一个简单的日志中间件,打印每个请求的时间戳和请求路径:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const express = require('express');
const app = express();

// 日志中间件
app.use((req, res, next) => {
console.log(`请求时间: ${new Date()}`);
console.log(`请求路径: ${req.path}`);
next(); // 继续处理请求
});

// 示例路由
app.get('/', (req, res) => {
res.send('欢迎来到首页!');
});

// 启动服务器
app.listen(3000, () => {
console.log('服务器正在运行在 http://localhost:3000');
});

在上述示例中,无论请求的路径是什么,都会先执行日志中间件,输出请求的时间和路径。

中间件的种类

中间件可以分为几类:

  1. 应用级中间件:绑定到app对象,处理特定的请求。
  2. 路由级中间件:绑定到特定的路由处理,可以用来做特定路由的处理。
  3. 内置中间件:Express提供的内置中间件,比如express.json(),用于解析JSON数据。
  4. 第三方中间件:使用npm安装的中间件,比如morganbody-parser等。

应用级中间件示例

下面的示例使用应用级中间件来验证用户身份:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const express = require('express');
const app = express();

// 用户身份验证中间件
const authMiddleware = (req, res, next) => {
const isAuthenticated = false; // 假设从某种方式获取用户认证状态
if (!isAuthenticated) {
return res.status(403).send('无访问权限');
}
next(); // 通过认证,继续处理请求
};

// 使用中间件保护路由
app.use('/protected', authMiddleware);

app.get('/protected', (req, res) => {
res.send('这是一个保护路由');
});

// 启动服务器
app.listen(3000, () => {
console.log('服务器正在运行在 http://localhost:3000');
});

在上面的代码中,只有通过身份验证的请求才能访问/protected路由。

错误处理中间件

此外,还可以使用中间件来处理错误。错误处理中间件的定义需要包含四个参数:

1
2
3
function(err, req, res, next) {
// 错误处理逻辑
}

下面是一个简单的错误处理中间件示例:

1
2
3
4
5
6
7
8
9
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('服务器发生错误!');
});

// 示例路由故意抛出错误
app.get('/error', (req, res) => {
throw new Error('这是一个错误');
});

随着请求的处理,如果发生错误,该错误处理程序将会捕获到并处理。

总结

中间件在Node.js中承担了许多重要的角色,助力应用更灵活地管理请求和响应流程。通过了解和掌握中间件的概念,您可以有效地构建复杂的Web应用程序。