express入门02静态资源托管
目录
- 1 搭建静态资源结构
- 2 代码助手
- 3 多目录托管
- 4 服务器热启动
- 总结
上一篇我们讲解了使用express搭建服务器的过程,服务器搭建好了之后,除了在地址栏里输入URL发起get请求或者post请求外,通常我们还需要访问静态资源,比如html、css、JavaScript等。本节我们讲解一下如何托管静态资源
1 搭建静态资源结构
在项目的根目录下创建一个public文件夹,里边分别创建css、javascript、images文件夹
在html页面我们搭建一个基础布局,用来显示我们家政预约平台的LOGO及名称,再放置一个退出按钮
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="./css/index.css"><script src="./javascript/index.js"></script>
</head>
<body><div class="nav-header"><img class="logo" src="./images/logo.png" alt="" width="80px" height="80px"><span class="title">家政预约管理后台</span><button onclick="logout()">退出</button></div>
</body>
</html>
这里我们引入了css和js
在css中我们定义一下组件的样式,让我们的组件横向排列,垂直居中
.logo{border-radius: 50%;
}
.title{ font-size: 20px;font-weight: bold;color: #000000;
}
.nav-header{display:flex;align-items: center;flex-direction: row;justify-content: flex-start;
}
在js中我们定义一个方法,提示一个信息
function logout(){alert('退出成功');
}
在images目录放置一个图片用来显示LOGO
静态资源放置好了之后,设置我们的app.js,让express启用我们的静态目录
app.use(express.static('public'))
设置好之后,启动我们的服务器,在地址栏里输入http://localhost:3000/index.html就可以看到具体的效果
2 代码助手
现在AI发展比较快,写代码的时候有一个助手就比较便捷了,这里我们安装一下Baidu Comate。点击扩展,输入插件的名称,点击Install
安装好之后需要进行登录,登录后你在写代码的时候,ai就会识别你的意图帮你自动补充代码,还是非常便捷的
3 多目录托管
如果有多个目录需要访问的,可以在项目的根目录继续创建文件夹,可以给新增的目录增加前缀来进行区分
在app.js里增加额外的托管目录
app.use('/uploads', express.static('uploads'))
在浏览器里我们就可以通过我们设置的前缀来访问静态资源
4 服务器热启动
每次修改app.js内容的时候,都得重启一下服务器,比较繁琐,我们引入一个插件来自动重启,输入如下命令安装
npm i nodemon -g
然后用nodemon来启动我们的app.js
nodemon app.js
这样每次修改的时候服务器会自动重启,比较方便
总结
本篇我们介绍了静态资源托管的功能,有了这个之后,下一篇我们就可以梳理一下和公众号的集成,比如响应用户的关注事件,自动给用户发送一个欢迎消息。
相关文章:

express入门02静态资源托管
目录 1 搭建静态资源结构2 代码助手3 多目录托管4 服务器热启动总结 上一篇我们讲解了使用express搭建服务器的过程,服务器搭建好了之后,除了在地址栏里输入URL发起get请求或者post请求外,通常我们还需要访问静态资源,比如html、c…...

Java常见的引用类型
1、强引用:普通的变量引用,Student sutnew Student(); 2、软引用:堆内对象若未被引用,GC不会立刻删除,而是在堆内存空间不足时才会进行删除。 3、弱引用:GC触发,会立刻删除。 4、虚引用&am…...

使用易备数据备份软件,简单快速地备份 Oracle 数据库
易备数据备份软件能够以简单高效的方式,实现对 Oracle 数据库的保护。 易备数据备份软件数据库备份功能的关键特性 自动保护网站数据库及应用程序实时备份,不需要任何中断或数据库锁定基于日期和时间的备份任务计划可恢复到一个已存在的数据库或创建一…...

基于SSM+Jsp的交通事故档案管理系统
开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…...

深度解析:ChatGPT全面测评——功能、性能与用户体验全景剖析
从去年底至今,由 OpenAI 发布的大规模语言模型 ChatGPT 引发了几乎所有科技领域从业者的高度关注。据瑞银集团的报告显示,自 2023 年 1 月起,仅两个月内,ChatGPT 的月活用户数便超过了 1 亿。 ChatGPT 被誉为“最强 AI”ÿ…...

领夹麦克风哪个品牌好?哪个麦克风好?揭秘无线麦克风十大排名!
无线领夹麦克风因其便携性和高音质而备受青睐。今天,我要为大家推荐几款备受赞誉的无线领夹麦克风,它们不仅在音质上表现出色,更在设计和性能上各有千秋。这些麦克风不仅适合专业录音师使用,也适合普通用户在日常生活中的各种场…...
低代码开发:智能财务系统开发应用
在当今数字化时代,企业对于高效的财务管理系统需求日益增长。低代码开发平台为开发智能财务系统提供了快速、灵活的解决方案,使企业能够快速构建、定制和部署应用程序,提升财务管理效率。本文将探讨低代码开发在智能财务系统开发应用中的应用…...

Windows 10 找不到Microsoft Edge 浏览器
下载链接 了解 Microsoft Edge 手动下载浏览器 问题说明 一般来说,windows10系统应该是自带浏览器edge的,但有的电脑就是没有找到edge浏览器,可能系统是精简过的,可能是被卸载了。如下,控制面板确实没找到程序。 …...
【react】useState 使用指南
React的useState是函数组件中用于管理状态(state)的Hook。以下是关于useState的使用指南,结合参考文章中的信息,以清晰、分点的方式表示: 1. 基本概念 useState是React函数组件中用于管理状态(state)的Hook。它接受一个初始状态值,并返回一个包含当前状态和一个用于更新…...

RK3588 Debian11进行源码编译安装Pyqt5
RK3588 Debian11进行源码编译安装Pyqt5 参考链接 https://blog.csdn.net/qq_38184409/article/details/137047584?ops_request_misc%257B%2522request%255Fid%2522%253A%2522171808774816800222841743%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&…...
二叉树的前序遍历-力扣
二叉树的前序遍历,指先遍历中间节点,然后遍历左节点,然后遍历右节点,按照这个顺序进行递归即可。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* …...

千问Qwen7B chat:本地部署及网页端使用
基于前面的安装经验,千问大模型的本地部署并不算难,主要时间用在大模型文件的下载上。同时系统运行对硬件也有较高的要求,本机的硬件配置为N卡3060,显存12G。 使用conda创建虚拟环境,主要版本如下: Pyth…...
(27)ADC接口--->(002)FPGA实现AD7606接口
(002)FPGA实现AD7606接口 1 目录 (a)FPGA简介 (b)IC简介 (c)Verilog简介 (d)FPGA实现AD7606接口 (e)结束 1 FPGA简介 (a)FPGA(Field Programmable Gate Array)是在PAL (可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。…...
设计模式-设计模式分类
概述 23 种设计模式,分为创建型模式、结构型模式和行为型模式。另外,近来这一清单又增加了一些类别,例如,并发型模式、线程池模式、Java EE 企业技术的多层应用程序上的模式等。 一、创建型模式 1.工厂方法模式(Factory Method…...

重邮计算机网络803-(1)概述
目录 一.计算机网络向用户提供的最重要的功能 二.互联网概述 1.网络的网络 2.计算机网络的概念 3. 互联网发展的三个阶段 4.制订互联网的正式标准要经过以下的四个阶段 5.互联网的组成(功能) 6.互联网功能 7.互联网的组成(物理&…...

党史馆3d网上展馆
在数字化浪潮的推动下,华锐视点运用实时互动三维引擎技术,为用户带来前所未有的场景搭建体验。那就是领先于同行业的线上三维云展编辑平台搭建编辑器,具有零基础、低门槛、低成本等特点,让您轻松在数字化世界中搭建真实世界的仿真…...
小心人工智障
最近gpt用的有点多 基本上centos命令都懒得自己动脑,直接把需求给gpt然后cv命令就用了事实证明还是需要自己盯一盯的,今天我想给新服务器配置一下环境,下个maven,给了他现在官网最新的版本号,他给我修正好的下载命令&a…...
[AIGC] 自定义Spring Boot中BigDecimal的序列化方式
在很多场景下,我们需要对BigDecimal类型的数据进行特殊处理,比如保留三位小数。Spring Boot使用Jackson作为默认的JSON序列化工具,我们可以通过自定义Jackson的序列化器(Serializer)来实现,下面将详细介绍实…...

ubuntu20.04设置文件开机自启动
硬件:树霉派4B 系统:ubuntu20.04 在ubuntu20.04上经常需要运行 ./BluetoothServerParse_L.c ,比较繁琐,想要设置开机自启动,让树霉派4B在接上电源之后就自动运行该程序。使用systemd服务,设置步骤如下: &…...
盛水最多的容器
class Solution { public:int maxArea(vector<int>& height) {int l0,rheight.size()-1;int ans0;while(l<r){int areamin(height[l],height[r])*(r-l);ansmax(area,ans);if(height[l]<height[r]){l;}else{--r;}}return ans;} };...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...

Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7
在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤: 第一步: 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为: // 改为 v…...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter
java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用(Math::max) 2 函数接口…...

【Java多线程从青铜到王者】单例设计模式(八)
wait和sleep的区别 我们的wait也是提供了一个还有超时时间的版本,sleep也是可以指定时间的,也就是说时间一到就会解除阻塞,继续执行 wait和sleep都能被提前唤醒(虽然时间还没有到也可以提前唤醒),wait能被notify提前唤醒…...
AT模式下的全局锁冲突如何解决?
一、全局锁冲突解决方案 1. 业务层重试机制(推荐方案) Service public class OrderService {GlobalTransactionalRetryable(maxAttempts 3, backoff Backoff(delay 100))public void createOrder(OrderDTO order) {// 库存扣减(自动加全…...