中间件设置静态资源目录

文章目录

  • 为什么要设置静态资源目录
  • 设置静态资源代码示例

为什么要设置静态资源目录

服务器中的代码,对于外部来说都是不可见的,
所以我们写的html页面,浏览器无法直接访问
如果希望浏览器可以访问,则需要将页面所在的目录设置静态资源目录
设置static中间件后,浏览器访问时,会自动去public目录寻找是否有匹配的静态资源(可以理解为浏览器自动把public目录拼接到服务器地址的后面,我们想要静态资源的时候,不用自己加目录(public),直接服务器网址后面加上资源名字就可以了
在这里插入图片描述
如上图,地址栏中是http://localhost:3000/沈星回.png
而不是http://localhost:3000/public/沈星回.png(意思是public目录不用写)

设置静态资源代码示例

const express = require("express")
const path = require("path")// 创建服务器的实例
const app = express()// 设置static中间件后,浏览器访问时,会自动去public目录寻找是否有匹配的静态资源,默认寻找的是index.html文件
app.use(express.static(path.resolve(__dirname, "./public")))// 配置路由
app.get("/loginaa", (req, res) => {
// 获取到用户输入的用户名和密码
// req.query 表示查询字符串中的请求参数
// console.log(req.query.username)
// console.log(req.query.password)if (req.query.username == "沈星回" && req.query.password == "5201314") {res.send("我知道了,沈星回是你老公!!!")}else {res.send("回答错误,你不是沈夫人")}})// 启动服务器
app.listen(3000, () => {console.log("服务器已起动~")
})

在上面的示例中,express.static 是Express.js提供的内置中间件,用于提供静态文件服务。它接受一个参数,即静态资源目录的路径,这里使用的是相对路径 ‘public’,表示静态资源文件存放在项目根目录下的 public 文件夹中。

接着,通过调用 app.use 方法将静态文件中间件应用到整个应用程序中。这样,当浏览器发出针对 / 路径下的静态资源请求时Express.js会自动查找并返回相应的文件,而不需要你在路由中进行特别的处理。

总之,虽然 use 方法本身不是专门用于设置静态资源目录的,但你可以借助于内置的静态文件中间件来实现这一功能。

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

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

相关文章

axios的post请求,数据为什么要用qs处理?什么时候不用?

axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 node.js。当我们使用 axios 发送 POST 请求时,经常需要处理请求体中的数据。qs 是一个库,用于将 JavaScript 对象或值转换为 URL 编码的字符串,这在发送表单数据时特别有用…

数据结构面试常见问题之串的模式匹配(KMP算法)系列-大师改进

😀前言 KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法) KMP算法的优势: 提高了匹配效率,时间复杂度为O(m…

软考 系统架构设计师系列知识点之云原生架构设计理论与实践(4)

接前一篇文章:软考 系统架构设计师系列知识点之云原生架构设计理论与实践(3) 所属章节: 第14章. 云原生架构设计理论与实践 第2节 云原生架构内涵 14.2 云原生架构内涵 关于云原生的定义有众多版本,对于云原生架构的…

IDEA, Pycharm, Goland控制台乱码

IDEA, Pycharm, Goland控制台乱码 问题描述: 控制台出现����等乱码 复现频率: 总是 解决方案: 以IDEA为例 添加 -Dfile.encodingUTF-8位置 idea64.exe.vmoptions 在安装idea的bin目录idea.vmoptions idea客户端 示意图

Java IO流与网络编程入门教程:通俗易懂,实例丰富

一、IO流概念与应用 什么是IO流? 想象一下水管流水,水从一端流入流出的过程就像是数据在程序中的传输。在Java世界里,IO流就是这样一个抽象概念,它是数据在不同存储介质或网络之间传输的一种方式。简单来说,如果你把数据看作水流,那么IO流就是承载这个水流的管道,它可以…

解决长尾问题,BEV-CLIP:自动驾驶中复杂场景的多模态BEV检索方法

解决长尾问题,BEV-CLIP:自动驾驶中复杂场景的多模态BEV检索方法 理想汽车的工作,原文,BEV-CLIP: Multi-modal BEV Retrieval Methodology for Complex Scene in Autonomous Driving 链接:https://arxiv.org/pdf/2401.…

YoloV8改进策略:Block改进|PKINet

摘要 PKINet是面向遥感旋转框的主干,网络包含了CAA、PKI等模块,给我们改进卷积结构的模型带来了很多启发。本文使用PKINet的Block替换YoloV8的Block,实现涨点。改进方法是我独创首发,给写论文没有思路的同学提供改进思路,欢迎大家订阅! 论文:《Poly Kernel Inception …

Pycharm配置conda

1.下载conda Free Download | Anaconda . 2.配置环境 1.conda自带base环境 2.创建环境 3. Pycharm创建项目,选择环境 3.Pycharm中新建conda环境

Java序列化之Jackson详解

文章目录 1 Jackson1.1 Jackson简介1.2 为什么选择Jackson1.3 Jackson的基本功能1.3.1 将Java对象转换为JSON字符串(序列化)1.3.2 将JSON字符串转换为Java对象(反序列化) 1.4 Jackson库主要方法1.5 使用Jackson基本步骤1.5.1 添加…

【工具-GUI Guider】

工具-GUI Guider GUI Guider GUI Guider LVGL-使用GUI Guider 拖拽式设计LVGL

P1719 最大加权矩形(洛谷)

文章目录 最大加权矩形题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示二维前缀和易错 最大加权矩形 题目描述 为了更好的备战 NOIP2013,电脑组的几个女孩子 LYQ,ZSC,ZHQ 认为,我们不光需要机房,我们还需要运动,于…

CSRF一-WEB攻防-CSRF请求伪造Referer同源置空配合XSSToken值校验复用删除

演示案例: CSRF-无检测防护-检测&生成&利用CSRF-Referer同源-规则&上传&XSSCSRF-Token校验-值删除&复用&留空 #CSRF-无检测防护-检测&生成&利用 检测:黑盒手工利用测试,白盒看代码检验(有无token…

【ESP32S3 Sense接入百度在线语音识别】

视频地址: ESP32S3 Sense接入百度在线语音识别 1. 前言 使用Seeed XIAO ESP32S3 Sense开发板接入百度智能云实现在线语音识别。自带麦克风模块用做语音输入,通过串口发送字符“1”来控制数据的采集和上传。 步骤概括    (1) 在百度云控制端选择“语音…

2023年全国职业院校技能大赛(网络系统管理赛项)样题三

2023****年全国职业院校技能大赛 GZ073****网络系统管理赛项 赛题第3套 模块A:网络构建 ​ 目 录 任务清单… 1 (一)基础配置… 1 (二)有线网络配置… 1 (三)无线网络配置… 3 (四)出口网络配置… 6 (五)网络运维配置… 6 (六)SDN网络配置… 7 附录1…

YiYi-Web项目介绍

YiYi-Web项目介绍 1. 简介2. 使用2.1 后端开发环境2.2 前端开发环境 3. 测试环境:4. 更新日志5. 打包情况6.项目截图 本项目前端是html、css、js、jQuery基础技术。 后端都是最新的SpringBoot技术,不分离版本, 是最基础的项目开发教程&#x…

挺后悔,我敷衍地回答了“程序员如何提升抽象思维“

分享是最有效的学习方式。 博客:https://blog.ktdaddy.com/ 大家好,我是老猫。 大概在月初的时候,我发了一篇文章【当程序员之后?(真心话)】,在这篇文章中,提及了抽象思维对一名程序员的重要性。可能说得也比较笼统&a…

【Flask】Flask数据模型关系

数据模型关系 一对多 如上所示,一个作者关联多个文章,暂时认定,一篇文章只能有一个作者。 作者以及文章的类定义如下所示: class Author(db.Model):id db.Column(db.Integer, primary_keyTrue)name db.Column(db.String(128)…

Godot.NET C# 工程化开发(1):通用Nuget 导入+ 模板文件导出,包含随机数生成,日志管理,数据库连接等功能

文章目录 前言Github项目地址,包含模板文件后期思考补充项目设置编写失误环境visual studio 配置详细的配置看我这篇文章 Nuget 推荐NewtonSoft 成功Bogus 成功Github文档地址随机生成构造器生成构造器接口(推荐) 文件夹设置Nlog 成功!Nlog.configNlogHe…

C++笔记之argv[1]与字符串内容的比较

C++笔记之argv[1]与字符串内容的比较 code review! 文章目录 C++笔记之argv[1]与字符串内容的比较1.错误示例:if(argv[1]=="Hello")2.方法一:使用 `strcmp` 函数3.方法二:将 `argv[1]` 转换为 `std::string` 然后使用 `==` 运算符来比较1.错误示例:if(argv[1]=…

蓝桥杯day10刷题日记

P8604 [蓝桥杯 2013 国 C] 危险系数 思路&#xff1a;dfs&#xff0c;用深度优先搜索查找一次所有的线路&#xff0c;过程中记录每个点走过的次数&#xff0c;最后在与总路线数比较&#xff0c;相同即为每次必过的点&#xff0c;即关键点 #include <iostream> using na…