中间件应用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月前
|
JavaScript 前端开发
如何减少Node.js应用中的全局变量?
如何减少Node.js应用中的全局变量?
329 133
|
1月前
|
存储 监控 JavaScript
基于布隆过滤器的 Node.js 算法在局域网电脑桌面监控设备快速校验中的应用研究
本文探讨了布隆过滤器在局域网电脑桌面监控中的应用,分析其高效空间利用率、快速查询性能及动态扩容优势,并设计了基于MAC地址的校验模型,提供Node.js实现代码,适用于设备准入控制与重复数据过滤场景。
68 0
|
4月前
|
监控 负载均衡 JavaScript
有哪些有效的方法可以优化Node.js应用的性能?
有哪些有效的方法可以优化Node.js应用的性能?
290 69
|
9天前
|
JavaScript 前端开发 安全
【逆向】Python 调用 JS 代码实战:使用 pyexecjs 与 Node.js 无缝衔接
本文介绍了如何使用 Python 的轻量级库 `pyexecjs` 调用 JavaScript 代码,并结合 Node.js 实现完整的执行流程。内容涵盖环境搭建、基本使用、常见问题解决方案及爬虫逆向分析中的实战技巧,帮助开发者在 Python 中高效处理 JS 逻辑。
|
1月前
|
资源调度 负载均衡 JavaScript
使用PM2工具部署Vue.js应用于服务器
以上步骤完成之后,你就成功利⽤ PM⼆工具将 Vuejs 应⽰程序部署至服 务 器,并且配合反向代理实现了高效稳定访问及负载均衡功能。
83 0
|
4月前
|
监控 算法 JavaScript
公司局域网管理视域下 Node.js 图算法的深度应用研究:拓扑结构建模与流量优化策略探析
本文探讨了图论算法在公司局域网管理中的应用,针对设备互联复杂、流量调度低效及安全监控困难等问题,提出基于图论的解决方案。通过节点与边建模局域网拓扑结构,利用DFS/BFS实现设备快速发现,Dijkstra算法优化流量路径,社区检测算法识别安全风险。结合WorkWin软件实例,展示了算法在设备管理、流量调度与安全监控中的价值,为智能化局域网管理提供了理论与实践指导。
121 3
|
5月前
|
存储 JavaScript 前端开发
|
域名解析 新零售 JavaScript
如何加快 Node.js 应用的启动速度
实现分钟到毫秒的转化
1904 0
如何加快 Node.js 应用的启动速度
|
JavaScript C++ Serverless
如何加快 Node.js 应用的启动速度
实现分钟到毫秒的转化
3365 0
|
2月前
|
JavaScript Unix Linux
nvm与node.js的安装指南
通过以上步骤,你可以在各种操作系统上成功安装NVM和Node.js,从而在不同的项目中灵活切换Node.js版本。这种灵活性对于管理不同项目的环境依赖而言是非常重要的。
774 11