第七篇:node中间件详解

 🎬 江城开朗的豌豆:个人主页

 🔥 个人专栏 :《 VUE 》 《 javaScript 》

 📝 个人网站 :《 江城开朗的豌豆🫛 》 

⛺️ 生活的理想,就是为了理想的生活 !

在这里插入图片描述

目录

📘 引言:

📘 全局中间件

📘 路由中间件

 📘 日志中间件

 📘 往期篇章推荐

⭐  写在最后


📘 引言:

当今互联网时代,Node.js 成为了最受欢迎的服务器端开发平台之一。作为一名小白,学习 Node.js 可能会让你感到有些困惑和陌生。但是,不用担心!本文将带领你进入 Node.js 的世界,帮助你理解它的基本概念和学习路径。

Node.js 是构建高性能、可扩展网络应用程序的运行时环境。它基于 Chrome V8 JavaScript 引擎,并采用事件驱动、非阻塞的 I/O 模型,使得它能够处理大量并发连接而不阻塞其他操作。这使得 Node.js 成为构建实时应用程序、聊天应用、API 服务等的理想选择。

本文旨在为初学者提供一个简单的入门指南,介绍 Node.js 的核心概念、安装和配置环境的步骤,以及使用常见的模块和工具。我们还将探索如何编写简单的服务器端代码、处理 HTTP 请求和响应、读写文件、操作数据库等常见任务。

无论你是想成为一名全职的 Node.js 开发者,还是只是对学习这门技术感兴趣,本文都将为你提供一个良好的起点。我们将尽量以简洁明了的方式解释概念,并提供实际的示例代码帮助你理解。

让我们一起开始这段令人兴奋的 Node.js 学习之旅吧!

📘 全局中间件

// 中间件
const middleware = (req, res, next)=> {console.log('这是一个中间件');next();
}
app.use(middleware);app.get('/home',(req,res)=>{res.send('home');
})
app.get('/about',(req,res)=>{res.send('about');
})

📘 路由中间件

// 局部中间件
app.get('/jubu', (req,res,next)=>{console.log('这是一个局部中间件');next();
},(req, res)=>{res.send('hom');
})

 📘 日志中间件

// 日志中间件
const logger = (req, res, next)=>{const time = new Date().toLocaleString();console.log(`当前时间:${time} 请求方式:${req.method} 路由地址:${req.url}`);next();
}
app.use(logger);//注册中间件app.get('/home1',(req, res)=>{res.send('home33333');}
)
app.get('/about1',(req, res)=>{res.send('about3333');}
)

注意:如果忘记在中间件中调用 next 函数,并且又不直接返回响应时,服务器会直接卡在这个中间件不会继续执行下去哦!

 📘 往期篇章推荐

 📟 第一篇:node的背景及版本的检查

 📟 第二篇:新建node项目并运行

 📟 第三篇:搭建项目的两种代码格式

 📟 第四篇:怎么写express的路由(接口+请求) 

 📟 第五篇:express路由路径方式(字符串,字符串模式,和正则)

 📟 第六篇:express路由拆分(模块化) 

⭐  写在最后


请大家不吝赐教,在下方评论或者私信我,十分感谢🙏🙏🙏.

✅ 认为我某个部分的设计过于繁琐,有更加简单或者更高逼格的封装方式

✅ 认为我部分代码过于老旧,可以提供新的API或最新语法

✅ 对于文章中部分内容不理解

✅ 解答我文章中一些疑问

✅ 认为某些交互,功能需要优化,发现BUG

✅ 想要添加新功能,对于整体的设计,外观有更好的建议

最后感谢各位的耐心观看,既然都到这了,点个 👍赞再走吧!
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/658260.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Opcua】 客户端读写时,Opcua Server信息返回处追溯(1)

【Opcua】 客户端读写时,Opcua Server信息返回处追溯(1) 前言从客户端角度展开分析从服务端角度展开分析 前言 基于前文【Node-RED】node-red-contrib-opcua-server模块使用(2)介绍,我们已经了解到NodeRed…

【EI会议征稿通知】第四届信号图像处理与通信国际学术会议(ICSIPC 2024)

第四届信号图像处理与通信国际学术会议(ICSIPC 2024) 2024 4th International Conference on Signal Image Processing and Communication 第四届信号图像处理与通信国际学术会议(ICSIPC2024)将于2024年5月17日-19日在陕西西安再…

用友NC Cloud及YonBIP PMCloudDriveProjectStateServlet JNDI注入漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

【伪类·HTML】

伪类 在 CSS 中,伪类是添加到选择器的关键字,给指定元素设置一些特殊状态,以 : 开头。 链接有以下四个状态。这四种状态也称之为超链接的伪类。 对于超链接的伪类,推荐的使用顺序是: :link - :visited - :hover - :a…

代码随想录刷题笔记-Day15

1. 完全二叉树的的节点个数 222. 完全二叉树的节点个数https://leetcode.cn/problems/count-complete-tree-nodes/ 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没…

幻兽帕鲁服务器多少钱?幻兽帕鲁服务器价格,2月最新

2024年幻兽帕鲁服务器价格表更新,阿里云、腾讯云和华为云Palworld服务器报价大全,4核16G幻兽帕鲁专用服务器阿里云26元、腾讯云32元、华为云26元,阿腾云atengyun.com分享幻兽帕鲁服务器优惠价格表,多配置报价: 幻兽帕鲁…

Spring Boot 中使用 Spring MVC基础

Spring MVC基础 一、控制器 controller1.定制控制器的方法(1)接收请求(2)接收请求参数(3)返回值 二、模型 Modle三、视图 View四、总结 Spring MVC 是非常著名的 Web 应用框架,现在的大多数 Web…

【C++】类和对象之构造函数、析构函数、拷贝构造函数(二)

前言:在上一篇我们对于C中类和对象有了一个初步的了解,今天我们将进一步的学习,今天我们目标是对构造函数、析构函数、拷贝构造函数进行一个初步学习在后面也会进一步的学习,一起加油呐! 💖 博主CSDN主页:卫…

幻兽帕鲁服务器多少钱——幻兽帕鲁服务器价格介绍

2024年幻兽帕鲁服务器价格表更新,阿里云、腾讯云和华为云Palworld服务器报价大全,4核16G幻兽帕鲁专用服务器阿里云26元、腾讯云32元、华为云26元,阿腾云atengyun.com分享幻兽帕鲁服务器优惠价格表,多配置报价: 幻兽帕鲁…

Windows Service 2008虚拟机安装mysql service 5.7并实现远程连接

安装前必读 mysql好像在5.7.20版本之后的绿色压缩包版解压都没有my.ini或者my-default.ini配置文件了,需要自己添加配置。 也没有data数据库文件夹,data文件夹不能自己新建,需要命令initialize初始化建立。 my-default.ini文件存不存在不重要…

JavaWeb学习|Session

学习材料声明 所有知识点都来自互联网,进行总结和梳理,侵权必删。 引用来源:尚硅谷最新版JavaWeb全套教程,java web零基础入门完整版 Session 1、Session 就一个接口(HttpSession)。 2、Session 就是会话。它是用来…

[ESP32]在Thonny IDE中,如何將MicroPython firmware燒錄到ESP32開發板中?

[ESP32 I MicroPython] Flash Firmware by Thonny(4.1.4) IDE 正常安裝流程,可參考上述影片。然而,本篇文章主要是紀錄安裝過程遇到的bug, 供未來查詢用,也一併供有需要的同好參考。 問題:安裝後,Thonny互動介面顯示一堆亂碼和co…

【lesson26】学习MySQL事务前的基础知识

文章目录 CURD不加控制,会有什么问题?CURD满足什么属性,能解决上述问题?什么是事务?为什么会出现事务事务的版本支持 CURD不加控制,会有什么问题? CURD满足什么属性,能解决上述问题&…

文本生成高清、连贯视频,谷歌推出时空扩散模型

谷歌研究人员推出了创新性文本生成视频模型——Lumiere。 与传统模型不同的是,Lumiere采用了一种时空扩散(Space-time)U-Net架构,可以在单次推理中生成整个视频的所有时间段,能明显增强生成视频的动作连贯性&#xff…

挑选合适的板式家具生产线:满足加工需求的要素解析

板式家具生产线是现代家具制造业中不可或缺的重要工具。然而,选择一条适合自身加工需求的板式家具生产线并不容易,需要考虑多方面因素。本文将深入探讨如何挑选合适的板式家具生产线,从而让读者更好地理解生产线的特点和选择要点。 一、需求分…

nginx+nginx-rtmp-module+ffmpeg进行局域网推流rtmp\m3u8

局域网推流的简单方式 这里以ubuntu为例 一、先下载安装包 nginx、nginx-rtmp-module,再一起安装 # 下载nginx # 这里我安装的是 nginx-1.10.3 版本 cd /usr/software wget http://nginx.org/download/nginx-1.25.0.tar.gz tar -zxvf nginx-1.25.0.tar.gz# 下载ng…

Prometheus---图形化界面grafana(二进制)

前言 Prometheus是一个开源的监控以及报警系统。整合zabbix的功能,系统,网络,设备。 proetheus可以兼容网络,设备。容器的监控。告警系统。因为他和k8s是一个项目基金开发的产品,天生匹配k8s的原生系统。容器化和云原…

详解OpenHarmony各部分文件在XR806上的编译顺序

大家好,今天我们来谈一谈编程时一个很有趣的话题——编译顺序。我知道,一提到编译可能大家会感到有点儿头疼,但请放心,我不会让大家头疼的。我们要明白,在开始写代码之前,了解整个程序的编译路径是十分有必…

Linux进程间通信(IPC)机制之一:共享内存

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:Nonsense—Sabrina Carpenter 0:50━━━━━━️💟──────── 2:43 🔄 ◀️ ⏸ ▶️ …

智能小程序事件系统——SJS响应事件实现方案

背景信息 如有频繁用户交互,在小程序上表现是比较卡顿的。例如,页面有 2 个元素 A 和 B,用户在 A 上做 touchmove 手势,要求 B 也跟随移动,movable-view 就是一个典型的例子。一次 touchmove 事件的响应过程为&#x…