express
文章目录
- 🟢 Express
- ⭐️ 1.初始Express
- ✨安装
- ✨使用Express 搭建一台服务器
- ⭐️2.Express-基本路由
- ✨1.使用字符串模式的路由路径示例:
- ✨2.使用正则表达式的路由路径示例:
- ✨3.中间件浅试(demo)
- ⭐️3.Express-中间件
- ✨1.应用级中间件
- ✨2.路由级中间件
- ✨3.错误处理中间件
- ✨4.内置的中间件
- ✨5.第三方中间件
- ⭐️4. Express--获取请求参数
- ✨1.get
- ✨2.post
- ⭐️5. Express-- 托管静态文件
- 📌持续更新中
- ✒️总结
🟢 Express
Express
基于 Node.js 平台,快速、开放、极简的 web 开发框架。Express 是 Node.js 最受欢迎的 Web 应用框架之一。它提供了简洁而灵活的方式来构建 Web 服务器和 API。Express 提供了一组强大的工具和功能,使得开发 Web 应用变得简单而高效。
⭐️ 1.初始Express

- Web 应用
Express 是一个基于 Nodejs 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。 - API
丰富的 HTTP 快捷方法和任意排列组合的 Connect 中间件,让你创建健、友好的API 变得既快速又简单。 - 性能
Express 不对 Node,js 已有的特性进行二次抽象,我们只是在它之上扩展了 Web 应用所需的基本功能。
✨安装
npm install express --save

✨使用Express 搭建一台服务器
index.js
const express=require(`express`)
// 导入express
const app=express()
app.get("/",(req,res)=>{res.write("hello express")res.end()
})
app.listen(5200,()=>{console.log("Server start")
})

send()
直接返回字符
app.get("/send",(req,res)=>{res.send("hello express-send")
})

返回html片段,可以看到直接解析
app.get("/send",(req,res)=>{res.send(`<h1>hello express-send</h1>`)
})

返回json数据·
app.get("/send",(req,res)=>{res.send({name:`初见`,age:23})
})

⭐️2.Express-基本路由
路由是指如何定义应用的端点(URIs)以及如何响应客户端的请求。
路由是由一个 URI、HTTP 请求(GET、POST等)和若干个句柄组成,它的结构如下:app.METHOD(path, [callback…], callback), app 是 express 对象的一个实例, METHOD 是一个HTTP 请求方法, path 是服务器上的路径, callback 是当路由匹配时要执行的函数。下面是一个基本的路由示例
var express = require('express');
var app = express();
// respond with "hello world" when a GET request is made to the homepage
app.get('/', function(req, res) {
res.send('hello world');
});
路由路径和请求方法一起定义了请求的端点,它可以是字符串、字符串模式或者正则表达式。
// 匹配根路径的请求
app.get('/', function (req, res) {
res.send('root');
});
// 匹配 /about 路径的请求
app.get('/about', function (req, res) {
res.send('about');
});
// 匹配 /random.text 路径的请求
app.get('/random.text', function (req, res) {
res.send('random.text');
});
✨1.使用字符串模式的路由路径示例:
// 匹配 acd 和 abcd
app.get('/ab?cd', function(req, res) {
res.send('ab?cd');
});
// 匹配 /ab/******
app.get('/ab/:id', function(req, res) {
res.send('aaaaaaa');
});
// 匹配 abcd、abbcd、abbbcd等
app.get('/ab+cd', function(req, res) {
res.send('ab+cd');
});
// 匹配 abcd、abxcd、abRABDOMcd、ab123cd等
app.get('/ab*cd', function(req, res) {
res.send('ab*cd');
});
// 匹配 /abe 和 /abcde
app.get('/ab(cd)?e', function(req, res) {
res.send('ab(cd)?e');
});
下面就一个一个尝试一下
- /ab?cd可以匹配 acd 和 abcd
//?前面的b可选,可以有也可以没有
app.get("/ab?cd", (req, res) => {res.send("ab?cd 匹配 acd 和 abcd")
});

- /ab/:id匹配/ab/******(常用于详情页,向后端传个id)
// 匹配 /ab/****** :也就是占位符的意思
app.get('/ab/:id', function(req, res) {res.send('/ab/:id匹配/ab/******');
});

- ab+cd匹配 abcd、abbcd、abbbcd等
// 匹配 abcd、abbcd、abbbcd等
//+前面的b可以重复n个
app.get('/ab+cd', function(req, res) {res.send('ab+cd匹配 abcd、abbcd、abbbcd等');
});

- ab*cd匹配 abcd、abxcd、abRABDOMcd、ab123cd等
// 匹配 abcd、abxcd、abRABDOMcd、ab123cd等
//*可匹配任意字符或任意多个字符
app.get(&#相关文章:
express
文章目录 🟢 Express⭐️ 1.初始Express✨安装✨使用Express 搭建一台服务器⭐️2.Express-基本路由✨1.使用字符串模式的路由路径示例:✨2.使用正则表达式的路由路径示例:✨3.中间件浅试(demo)⭐️3.Express-中间件✨1.应用级中间件✨2.路由级中间件✨3.错误处理中间件✨4…...
HTML网页大设计-家乡普宁德安里
代码地址: https://pan.quark.cn/s/57e48c3b3292...
深度学习:从数据采集到模型测试的全面指南
摘要 随着人工智能和大数据技术的迅猛发展,深度学习已成为解决复杂问题的有力工具。然而,从项目启动到模型部署,包含了数据处理和模型研发的多个环节,每个环节的细致和严谨性直接决定了最终模型的性能和可靠性。本论文详细探讨了…...
Excel第29享:基于sum嵌套sumifs的多条件求和
1、需求描述 如下图所示,现要统计12.17-12.23这一周各个人员的“上班工时(a1)”。 下图为系统直接导出的工时数据明细样例。 2、解决思路 首先,确定逻辑:“对多个条件(日期、人员)进行“工时”…...
Elasticsearch:Node.js ECS 日志记录 - Morgan
这是之前系列文章: Elasticsearch:Node.js ECS 日志记录 - Pino Elasticsearch:Node.js ECS 日志记录 - Winston 中的第三篇文章。在今天的文章中,我将描述如何使用 Morgan 包针对 Node.js 应用进行日子记录。此 Morgan Node.j…...
ChatGPT对话:Python程序自动模拟操作网页,无法弹出下拉列表框
【编者按】需要编写Python程序自动模拟操作网页。编者有编程经验,但没有前端编程经验,完全不知道如何编写这种程序。通过与ChatGPT讨论,1天完成了任务。因为没有这类程序的编程经验,需要边学习,边编程,遇到…...
Unity 之 抖音小游戏集成排行榜功能详解
Unity 之 抖音小游戏集成排行榜功能详解 一,前言1.1 为游戏设计利于传播的元素2.2 多人竞技、社交传播二,集成说明2.1 功能介绍2.2 完整代码2.3 效果展示三,发现的问题和迭代计划一,前言 对于 Unity 开发者而言,在开发抖音小游戏时集成排行榜功能是提升游戏社交性和玩…...
【学习笔记】Redis学习笔记——第13章 客户端
第13章 客户端 redisServer通过clients链表保存全部客户端的状态信息。 13.1 客户端属性 13.1.1 套接字描述符 fd:-1时伪客户端,载入AOF文件或Lua脚本。 13.1.2 名字 默认无客户端名,可以通过SETNAME命令设置。 13.1.3 标志 flags&am…...
Android中的JSON解析:从基础到实践
在Android应用开发中,JSON(JavaScript Object Notation)是最常用的数据交换格式之一,因其轻量级、易读性强以及跨平台兼容性好等特点,被广泛应用于服务器与客户端之间的数据传输。解析JSON数据对于提取和处理这些信息至…...
力扣-回溯法
何为回溯法? 在搜索到某一节点的时候,如果我们发现目前的节点(及其子节点)并不是需求目标时,我们回退到原来的节点继续搜索,并且把在目前节点修改的状态还原。 记住两个小诀窍,一是按引用传状态…...
240713_昇思学习打卡-Day25-LSTM+CRF序列标注(4)
240713_昇思学习打卡-Day25-LSTMCRF序列标注(4) 最后一天咯,做第四部分。 BiLSTMCRF模型 在实现CRF后,我们设计一个双向LSTMCRF的模型来进行命名实体识别任务的训练。模型结构如下: nn.Embedding -> nn.LSTM -&…...
python requests关闭https校验
python requests关闭https校验 import requests# 关闭SSL验证 requests.get(https://***.com, verifyFalse)...
PG大会周五于杭州举办;Pika发布4.0;阿里云MySQL上线Zero-ETL集成能力
重要更新 1. PostgreSQL中国技术大会举行12日(周五)于杭州举办,是PostgreSQL社区年度的大会,举办地点:杭州君尚云郦酒店(杭州市上城区临丁路1188号),感兴趣的可以考虑现场参加 ( [1]…...
虚拟机vmware网络设置
一、网络分类 打开vmware workstation网络编辑器可以知道有三种网络类型,分别是:桥接模式、nat模式、仅主机模式。 1、桥接模式 桥接模式是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接的作用下, 类似于把物理主机虚拟为一个交换机, 所有设…...
数学建模国赛入门指南
文章目录 认识数学建模及国赛认识数学建模什么是数学建模?数学建模比赛 国赛参赛规则、评奖原则如何评省、国奖评奖规则如何才能获奖 国赛赛题分类及选题技巧国赛赛题特点赛题分类 国赛历年题型及优秀论文 数学建模分工技巧数模必备软件数模资料文献数据收集资料收集…...
Java基础之集合
集合和数组的类比 数组: 长度固定可以存基本数据类型和引用数据类型 集合: 长度可变只能存引用数据类型存储基本数据类型要把他转化为对应的包装类 ArrayList集合 ArrayList成员方法 添加元素 删除元素 索引删除 查询 遍历数组...
深度学习和NLP中的注意力和记忆
深度学习和NLP中的注意力和记忆 文章目录 一、说明二、注意力解决了什么问题?#三、关注的代价#四、机器翻译之外的关注#五、注意力(模糊)记忆?# 一、说明 深度学习的最新趋势是注意力机制。在一次采访中,现任 OpenAI 研…...
自用的C++20协程学习资料
C20的一个重要更新就是加入了协程。 在网上找了很多学习资料,看了之后还是不明白。 最后找到下面这些资料总算是讲得比较明白,大家可以按照顺序阅读: 渡劫 C 协程(1):C 协程概览C20协程原理和应用...
【C++】优先级队列(底层代码解释)
一. 定义 优先级队列是一个容器适配器,他可以根据不同的需求采用不同的容器来实现这个数据结构,优先级队列采用了堆的数据结构,默认使用vector作为容器,且采用大堆的结构进行存储数据。 (1)在第一个构造函数…...
华为模拟器防火墙配置实验(二)
一.实验拓扑 二.实验要求 1,DMZ区内的服务器,办公区仅能在办公时间内(9:00 - 18:00)可以访问,生产区的设备全天可以访问. 2,生产区不允许访问互联网,办公区和游客区允许…...
新手避坑指南:给UR机械臂选配RealSense D435相机,这5个参数千万别看错
新手避坑指南:给UR机械臂选配RealSense D435相机,这5个参数千万别看错 第一次为UR机械臂选配深度相机时,我盯着RealSense D435的参数表发呆了半小时——那些专业术语像天书一样。直到项目因选型错误延误两周后,我才明白参数表里藏…...
若依框架多数据源实战:如何用@DataSource注解轻松切换MySQL主从库
若依框架多数据源实战:用DataSource注解实现MySQL主从库智能切换 当系统流量逐渐攀升,数据库的读写压力开始显现时,很多开发者都会面临一个关键决策:如何在保证数据一致性的前提下,有效分散数据库负载?若依…...
Tomcat服务没启动?手把手解决127.0.0.1拒绝连接问题(附端口排查技巧)
Tomcat服务没启动?手把手解决127.0.0.1拒绝连接问题(附端口排查技巧) 当你满怀期待地在浏览器输入http://127.0.0.1:8080准备测试刚部署的Java Web应用时,屏幕上冰冷的"拒绝连接"提示就像一盆冷水浇下来。这种情况我见过…...
云效Codeup代码评审功能深度体验:如何用它提升团队代码质量(附真实项目案例)
云效Codeup代码评审实战指南:从规范制定到CI/CD集成 在当今快节奏的软件开发环境中,代码质量直接决定了产品的稳定性和可维护性。作为技术负责人,我经历过无数次因代码质量问题导致的深夜加班和紧急修复。直到团队开始系统化使用云效Codeup的…...
OpenClaw备份恢复:Qwen3-VL:30B飞书配置迁移指南
OpenClaw备份恢复:Qwen3-VL:30B飞书配置迁移指南 1. 为什么需要备份恢复OpenClaw配置 上周我的主力开发机突然硬盘故障,导致所有数据丢失。最让我头疼的不是代码仓库——它们都有远程备份,而是那套精心调校的OpenClaw飞书助手配置。这个助手…...
fre:ac音频转换全攻略:跨平台高效工作流搭建指南
fre:ac音频转换全攻略:跨平台高效工作流搭建指南 【免费下载链接】freac The fre:ac audio converter project 项目地址: https://gitcode.com/gh_mirrors/fr/freac 在数字音频处理领域,开源工具的选择往往决定了工作流的效率与质量。fre:ac作为一…...
ESP8266高速移位寄存器驱动库:3.8μs级GPIO直控
1. FastEsp8266ShiftRegister 库概述FastEsp8266ShiftRegister 是一款专为 ESP8266 微控制器深度优化的高速移位寄存器驱动库。其核心设计目标是突破传统软件模拟 SPI 或标准 GPIO 操作在 ESP8266 上的性能瓶颈,实现接近硬件 SPI 时序精度、但具备更高灵活性的并行/…...
PCB多层板设计:偶数层优势与奇数层解决方案
PCB多层板层数设计解析:偶数层优势与奇数层解决方案1. 多层PCB基础概念与现状PCB(Printed Circuit Board)根据层数可分为单面板、双面板和多层板。现代电子产品中,多层PCB的应用越来越广泛,其层数从4层到超过100层不等…...
如何用Alternative Mod Launcher彻底解决XCOM 2模组管理的五大难题
如何用Alternative Mod Launcher彻底解决XCOM 2模组管理的五大难题 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/…...
别再问同步安全了!手把手教你用Docker部署思源笔记,并彻底搞懂它的端到端加密
从零构建安全笔记系统:Docker部署思源笔记与端到端加密实战指南 在信息爆炸的时代,如何安全地管理个人知识库成为技术爱好者的核心诉求。思源笔记作为一款支持Markdown的本地优先笔记工具,配合Docker容器化部署,能够打造真正私有化…...
