中间件应用Express.js(Node.js)

简介: 【5月更文挑战第3天】我们定义了一个名为 `logger` 的中间件函数。它接受请求对象、响应对象以及下一个中间件函数作为参数。当接收到请求时,它会打印出请求的 HTTP 方法和 URL,然后调用 `next()` 函数来将控制权传递给下一个中间件或路由处理器。我们使用 `app.use()` 方法将 `logger` 中间件添加到了应用级别的中间件堆栈中,这意味着它将对所有请求生效。

image.png
Express.js 是一个基于 Node.js 平台的极简、灵活的 web 应用框架,它提供了一整套强大的特性来帮助你构建 web 和移动应用。Express.js 并不直接处理 HTTP 请求和响应,而是将这些功能封装在一个易于使用的 API 中,从而让你能够更快速地构建 web 应用。

以下是一个简单的 Express.js 应用示例:

  1. 安装 Express

首先,你需要确保已经安装了 Node.js。然后,你可以使用 npm(Node.js 的包管理器)来安装 Express。在你的项目目录下打开命令行,并输入以下命令:

npm init -y  # 初始化 package.json 文件(使用默认设置)
npm install express --save  # 安装 Express 并将其添加到 package.json 的依赖中
  1. 创建 Express 应用

在你的项目目录下创建一个名为 app.js 的文件,并输入以下代码:

const express = require('express');
const app = express();
const port = 3000;

// 定义路由
app.get('/', (req, res) => {
   
  res.send('Hello World!');
});

// 启动服务器
app.listen(port, () => {
   
  console.log(`Server is running on port ${
     port}`);
});

在这个示例中,我们首先引入了 Express 模块,并创建了一个 Express 应用实例。然后,我们定义了一个路由处理器,当访问根 URL(/)时,它会返回一个包含文本 "Hello World!" 的响应。最后,我们使用 app.listen() 方法启动了服务器,并指定了监听的端口号。

  1. 运行应用

在命令行中,使用以下命令来运行你的 Express 应用:

node app.js

如果一切正常,你应该会在命令行中看到 "Server is running on port 3000" 的输出。此时,你可以打开浏览器并访问 http://localhost:3000/ 来查看你的应用。你应该会看到一个包含文本 "Hello World!" 的页面。

  1. 中间件

Express.js 的一个关键特性是中间件。中间件是一个函数,它可以访问请求对象(req)、响应对象(res)以及应用请求-响应循环中的下一个中间件函数。你可以使用中间件来执行各种任务,如解析请求体、验证用户身份、记录日志等。

以下是一个使用中间件的示例:

const express = require('express');
const app = express();

// 自定义中间件
function logger(req, res, next) {
   
  console.log(`${
     req.method} ${
     req.url}`);
  next();
}

// 使用中间件
app.use(logger);

// 定义路由
app.get('/', (req, res) => {
   
  res.send('Hello World!');
});

// 启动服务器...

在这个示例中,我们定义了一个名为 logger 的中间件函数。它接受请求对象、响应对象以及下一个中间件函数作为参数。当接收到请求时,它会打印出请求的 HTTP 方法和 URL,然后调用 next() 函数来将控制权传递给下一个中间件或路由处理器。我们使用 app.use() 方法将 logger 中间件添加到了应用级别的中间件堆栈中,这意味着它将对所有请求生效。

目录
相关文章
|
4天前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
82 0
|
2天前
|
缓存 JavaScript 前端开发
JavaScript:get和post的区别,2024年最新3-6岁儿童学习与发展指南心得体会
JavaScript:get和post的区别,2024年最新3-6岁儿童学习与发展指南心得体会
|
3天前
|
设计模式 存储 前端开发
JS的几种设计模式,Web前端基础三剑客学习知识分享,前端零基础开发
JS的几种设计模式,Web前端基础三剑客学习知识分享,前端零基础开发
|
4天前
|
XML Web App开发 前端开发
字节FE:JavaScript学习路线图
字节FE:JavaScript学习路线图
10 0
|
4天前
|
存储 移动开发 JavaScript
学习javascript,前端知识精讲,助力你轻松掌握
学习javascript,前端知识精讲,助力你轻松掌握
|
4天前
|
JavaScript 前端开发 测试技术
学习JavaScript
【4月更文挑战第23天】学习JavaScript
15 1
|
4天前
|
JavaScript 前端开发 应用服务中间件
node.js之第一天学习
node.js之第一天学习
|
4天前
|
运维 JavaScript 前端开发
发现了一款宝藏学习项目,包含了Web全栈的知识体系,JS、Vue、React知识就靠它了!
发现了一款宝藏学习项目,包含了Web全栈的知识体系,JS、Vue、React知识就靠它了!
|
4天前
|
JavaScript
Vue.js学习详细课程系列--共32节(6 / 6)
Vue.js学习详细课程系列--共32节(6 / 6)
28 0