express 本地https服务 接口、静态文件,并支持跨域
var express = require('express');
var app = express();
//设置跨域访问
app.all('*', function (req, res, next) {res.header('Access-Control-Allow-Origin', '*');res.header('Access-Control-Allow-Credentials', true);res.header('Access-Control-Allow-Headers', 'Content-Type,Content-Length, Authorization, Accept,X-Requested-With')res.header('Access-Control-Allow-Methods', 'PUT,POST,GET,DELETE,OPTIONS');//res.header('Content-Type', 'application/json;charset=utf-8');next()
});// 当路由url匹配为'/'时,执行function,返回Hello World
app.get('/', function (req, res) {res.send('Hello World');
});app.use('/publicStaticPath',express.static("./dist"));
// 访问 https://localhost:6789/publicStaticPath/文件名 ,可以获取相应静态文件app.listen(6788,()=>console.log('http://localhost:6788'));// HTTPS
var fs = require('fs');
//同步读取密钥和签名证书
const options = {key:fs.readFileSync('./cert/cert-key.pem'),cert:fs.readFileSync('./cert/cert.pem')
}
// 创建https server的时候 传入服务器私钥和服务器证书
// 引入https模块
var https = require('https');
var httpsServer = https.createServer(options,app);
//https监听8080端口
httpsServer.listen(6789,()=>console.log('https://localhost:6789'));
签名证书 生成
[签名证书 生成 ](https://blog.csdn.net/weixin_45062275/article/details/136829974#:~:text=mkcert%E7%94%9F%E6%88%90%E5%AE%89%E5%85%A8%E7%9A%84%E8%AF%81%E4%B9%A6>
mkcert localhost 127.0.0.1 ::1
生成的
localhost+2.pem文件
-----BEGIN CERTIFICATE-----
MIIEdzCCAt+gAwIBAgIRAMwv7/JautF2m21gssHZn1kwDQYJKoZIhvcNAQELBQAw
gZUxHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9wbWVudCBDQTE1MDMGA1UECwwsMjAx
OTA2MTctMTU1MDEyXEFkbWluQDIwMTkwNjE3LTE1NTAxMiAoS2VhbikxPDA6BgNV
BAMMM21rY2VydCAyMDE5MDYxNy0xNTUwMTJcQWRtaW5AMjAxOTA2MTctMTU1MDEy
IChLZWFuKTAeFw0yNDA1MDcwNzIwMTJaFw0yNjA4MDcwNzIwMTJaMGAxJzAlBgNV
BAoTHm1rY2VydCBkZXZlbG9wbWVudCBjZXJ0aWZpY2F0ZTE1MDMGA1UECwwsMjAx
OTA2MTctMTU1MDEyXEFkbWluQDIwMTkwNjE3LTE1NTAxMiAoS2VhbikwggEiMA0G
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC8RMxIbg8CU73MnMT/d0IKejTb++rB
zUiUPES6hczdpMOwv8W9gHtxkw3tDrzG10q+skD/0+RzC4x+x9xcBM3pSprpqjhl
Ro05Qmcz0wZMxCVqYEGcU1hfW/Dpb03TRSW2GJ0Czvs5jtwIFzV14fZxE/oaYHd1
Sj7L1v8WCD+HRDkg2xrAtTwxtg58QimfurBJ55qlLpOArbJx1cxvEsXwKXUy8x51
6fIYaleVqe5JCl7cSyo6mKAzyVjM0pbOg8Z7zGJY+avS7jwk23j/WrfIAvBy7SC1
AA8OrLp9cPaNVfmBc1tjk2ZlJKdFbDiUw+wJOAdPoQbl5MYZJZg8OwBtAgMBAAGj
djB0MA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAfBgNVHSME
GDAWgBR2rglco/qYq9AAV6LaptsYbud2iDAsBgNVHREEJTAjgglsb2NhbGhvc3SH
BH8AAAGHEAAAAAAAAAAAAAAAAAAAAAEwDQYJKoZIhvcNAQELBQADggGBAE4aEo5Q
yREwvlQWDwJjiXbUIfUJ9dYb7KFVPDI61OONaXPviDkUzreLP0NzM52tmEg605gR
C+pjHi7ZPcj1+ZAa4VPHNBQ+bKe1nF/NIcU3NZKRomfWz/pcbx5jDB/lWFvcp9Xw
g2SS4G1b1ihqZvql82B74HD6us+IEg9lmlOelio86BMcEX6/pst2UYxqvqU34EjK
2TN/E+Aw8o7WAYwdEtQ9aQ507/1aw83iWgXVHIHr8W9wBbghbwXBSmfvWP1Y3S5p
Cub1AxOkgdB8OSgM4NUJbX7yesMR/YDk+kRpYl0DbMetUN3tM1ar4ChktSltzeQa
GmYJTH+fRiJLfoUqjqGM6q4aYlkhwCCYwXn7vo8GNmN8wKYyXCKNEhfN4rX1jI72
nSOsmN12HREmNsHtCBDOyt6c+RbA/yOqJlrLyTA3PS6wWLRnzfA3HNUP1cwe2aAh
79b8H6EkHLL6/7/182KfviA5312Abn5NYqJYlORhWhRKppWKZ1tNORy21g==
-----END CERTIFICATE-----
localhost+2-key.pem 文件
-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC8RMxIbg8CU73M
nMT/d0IKejTb++rBzUiUPES6hczdpMOwv8W9gHtxkw3tDrzG10q+skD/0+RzC4x+
x9xcBM3pSprpqjhlRo05Qmcz0wZMxCVqYEGcU1hfW/Dpb03TRSW2GJ0Czvs5jtwI
FzV14fZxE/oaYHd1Sj7L1v8WCD+HRDkg2xrAtTwxtg58QimfurBJ55qlLpOArbJx
1cxvEsXwKXUy8x516fIYaleVqe5JCl7cSyo6mKAzyVjM0pbOg8Z7zGJY+avS7jwk
23j/WrfIAvBy7SC1AA8OrLp9cPaNVfmBc1tjk2ZlJKdFbDiUw+wJOAdPoQbl5MYZ
JZg8OwBtAgMBAAECggEAS4d+PQCKXPCjkFbEYYjCodltI2PpRl7I409ac0oCalkT
ePE2r1PAMkxApf3nlg4BGogAs6GaYN0dPC+KJBB5W0Jm658yiM7JEVOme5AJUvrN
1+NN7x0wsvD7sWrJ2hw/iNJPCzVmbCz38Pb+p5BDghH1oGdbBV8H2lcidwBQHD9+
SV+xulFQB2IMDOORHdL0PeYD95qkmY0+VkNwyyZrmQP3FeU+942t7kUjedJ2JjbD
azJV9aieKbiXdKociQhait8m6EPerJEtEmYrWKYW9LVxo3Ik3Je3l9T0mCel5zZM
IB8Mt6huYnYe4s4wH2s+TA/Yd7H5XEEt5Zy/nHITsQKBgQDWiRnfaaIwidjttU0T
/2WyQJ4pMLyA8546y2ezBo1ccuzkd8/YLg/sxHBLtsGoB4YrTqZaSKlTvOuITxwP
EMEZ0CD/bNpmM8snxNYKzzEsRwbfADHgtj9bUDs8N1s81ERpEGYeQUnagSPXDW31
HcUyN89Tylj9PcZmUn+v1oizIwKBgQDgqA3tdw80swV7nMgAxqfGI4PseSv3K1Ls
zuEAsMafM/EzlxHHYgSTXnZtP7YSXyV3Q26qFqMKstt3VCQdskMqXFtBMyKD0Om7
vEFuWv1/3s34g2co81/gp4l7B8RYP8j5G6/9s5aQa1b9i1Rs2Z2TJnLmd9IiXdJU
BpLZx8m/LwKBgBjnoZFF+gYYeo5d1azUoUGoLrQpbDisD1pT8p3dzNtGnCmJnx9B
eafKxh6EAMc42GJ+puEkPkPyUoVoaaF2GHSerLX6NQBYUuUy/IYUt2ikdi+9Hg0w
GvrGvZmn83eETMzFkpVAjwpGo5p7fKBP7Gx//hmEDACaA0YtnZUUGppxAoGADc7G
bF3w9VA7egl80W9kSG1OYm5gIWTsR9m/Qoea7ZYHsSAL27FOjrAznytXSXHHn7jp
SFLz2mh7zK3DOoAGWMgsY6l86ZUhiIRdkSbOhdlv12JcKMwsjGY/sOwdST9CXu0w
t+sdyeqPAi5aFgaaBL1MOpYKuEoD714oEHKTF8kCgYBsy0dm2/L5ZLLCekDO36Hb
yE7o14VFQDNgIFQ3CIXa2iXxZQAceuTlIWJHrXv0LS8+Z/Q7Q7PqtfcwQDtSRSRz
orzJbMcI1THQeZEQWrBfnvi1G2E63lOBJLoKFx/aO1KjoH3DiyA+KITYoRvZepGo
RrhB/qD/eVa9uKDHvtoj8g==
-----END PRIVATE KEY-----相关文章:
express 本地https服务 接口、静态文件,并支持跨域
var express require(express); var app express(); //设置跨域访问 app.all(*, function (req, res, next) {res.header(Access-Control-Allow-Origin, *);res.header(Access-Control-Allow-Credentials, true);res.header(Access-Control-Allow-Headers, Content-Type,Cont…...
从零手写实现 tomcat-08-tomcat 如何与 springboot 集成?
创作缘由 平时使用 tomcat 等 web 服务器不可谓不多,但是一直一知半解。 于是想着自己实现一个简单版本,学习一下 tomcat 的精髓。 系列教程 从零手写实现 apache Tomcat-01-入门介绍 从零手写实现 apache Tomcat-02-web.xml 入门详细介绍 从零手写…...
yarn 安装以及报错处理
前一种报错是由于没有安装yarn导致的,使用以下命令即可安装: npm install -g yarn 如果成功安装,将显示Yarn的版本号。 yarn --version 第二种报错是因为系统上的执行策略限制导致的。执行策略是一种安全功能,用于控制在计算机…...
31万奖金池等你挑战!IJCAI 2024 第九届“信也科技杯”全球AI算法大赛正式开赛!聚焦AI尖端赛题!
文章目录 ⭐️ 赛事概况⭐️ 赛事奖励⭐️ 赛事日程速览⭐️ 报名通道与赛事交流群⭐️ 关于 “信也科技杯”⭐️ 关于信也科技 ⭐️ 赛事概况 随着语音合成技术的不断进步,合成语音与真实语音之间的界限变得模糊,这不仅对数据安全构成威胁,也对科技伦理提出了新的要求。 第九…...
线性表—栈的实现
目录 栈的概念及结构 栈的实现 创建栈 栈的初始化 入栈 出栈 取出栈顶数据 判断栈是否为空 有效数据个数 栈的销毁 全代码 stack.h stack.c 应用 题目 示例 解题思路 代码实现 栈的概念及结构 栈是一种特殊的线性表,其只允许在固定的一端进行插入…...
react+antd --- 日期选择器,动态生成日期表格表头
先看一下效果---有当前月的日期 技术: 1: react 2:antd-UI库 -- table 3:moment--时间处理库 代码效果: import { Button, DatePicker, Table } from antd; import { useEffect, useState } from react; import momen…...
webgl入门-js与着色器间的数据传输
js与着色器间的数据传输 前言 课堂目标 使用js向着色器传递数据获取鼠标在canvas 中的webgl 坐标系位置 知识点 attribute 变量gl.vertextAttribute3f() 的同族函数鼠标在canvas 中的css 位置转webgl 坐标位uniform 变量gl.uniform4f() 的同族函数 第一章 用js控制一个点…...
springmvc异常处理
springmvc异常处理 spring中有三种方式可以优雅的处理异常 使用ExceptionHandler 使用HandlerExceptionResolver 使用ControllerAdviceExceptionHandler 使用ExceptionHandler 该方式只在指定的Controller有效,不会对其他的Controller产生影响 ControllerRequestMap…...
可拖动、连线的React画布组件有哪些? 官网分别是什么?
下面是一些常用的可拖动、连线的React画布组件以及它们的官方网站: react-dagre-d3:这是一个基于React和D3.js的可拖动、连线的图形编辑器组件。它使用DAG(有向无环图)布局算法,支持节点拖拽、连线、缩放等功能。官网&…...
专访 Staynex 创始人 Yuen Wong:酒店行业的变革者
整理:Tia,Techub News 传统酒店业其实已经很中心化了,几大巨头 OTA 平台几乎已经完成对行业的垄断,而酒店商家也不得不受制于平台的规则制度,向平台支付高比例的费用。Staynex 看到了其中的机会,并想利用区…...
最新版Ceph( Reef版本)块存储简单对接k8s(上集)
当前ceph 你的ceph集群上执行 1.创建名为k8s-rbd 的存储池 ceph osd pool create k8s-rbd 64 642.初始化 rbd pool init k8s-rbd3 创建k8s访问块设备的认证用户 ceph auth get-or-create client.kubernetes mon profile rbd osd profile rbd poolk8s-rbd部署 ceph-rbd-csi c…...
稳态大面积光伏组件IV测试太阳光模拟器
稳态大面积光伏组件IV测试太阳光模拟器是太阳能光伏组件质量检测和评价的重要步骤之一。本文将介绍光伏组件IV测试的原理及标准板选择。 I. 光伏组件IV测试原理 光伏组件IV测试即电流电压特性测试,是评估光伏组件性能的重要手段。其测量的主要参数为组件的电流和电…...
编写HTTP协议代理的一些知识(源码)
初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 早期上网经常需要使用代理服务…...
LabVIEW天然气压缩因子软件设计
LabVIEW天然气压缩因子软件设计 项目背景 天然气作为一种重要的能源,其压缩因子的准确计算对于流量的计量和输送过程的优化具有关键意义。传统的计算方法不仅步骤繁琐,而且难以满足现场快速响应的需求。因此,开发一款既能保证计算精度又便于…...
GCP谷歌云有什么数据库类型,该怎么选择
GCP谷歌云提供的数据库类型主要包括: 关系型数据库:这类数据库适用于结构化数据,通常用于数据结构不经常发生变化的场合。在GCP中,关系型数据库选项包括Cloud SQL和Cloud Spanner。Cloud SQL提供托管的MySQL、PostgreSQL和SQL Se…...
项目经理之路:裁员与内卷下的生存策略
作为一名项目经理,身处这个充满挑战与机遇的行业中,今年所面临的裁员潮和内卷化趋势无疑给我的工作带来了前所未有的压力。然而,正是这些压力和挑战,让我们更加深刻地思考了在这个快速变化的时代中,我们项目经理应该如…...
MWM触摸屏工控机维修TEM-EV0 EN00-Z312yy-xx
触摸屏维修是一个比较复杂的过程,并且其中会涉及到各个部件的问题,这对于操作人员来说,关键在于是否可以找到问题所在。维修过程中建议先检查各接线接口是否出现松动,然后检查串口及中断号是否有冲突,若有冲突…...
idm下载到99.99%不动了 idm突然不下载了 idm下载到最后没速度咋办 IDM下载后没网了是怎么回事
idm能够帮助我们下载不同类型的网页视频,并且基于多线程下载技术的助力下使其下载速度比原来提升数倍以上,因此成为了许多朋友下载的小助手。但也有朋友反映idm下载网页视频超时连接不上,idm下载网页视频突然停止,究竟这些情况我们…...
设计模式-07 设计模式-观察者模式(Observer Pattern)
设计模式-07 设计模式-观察者模式(Observer Pattern) 1.定义 观察者模式是一种软件设计模式,它定义了一种一对多的依赖关系,其中一个对象(称为“主题”)维护了一个依赖对象的列表(称为“观察者”…...
戒烟网站|基于SSM+vue的戒烟网站系统的设计与实现(源码+数据库+文档)
戒烟网站 目录 基于SSM+vue的戒烟网站系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1网站功能模块 2管理员功能模块 3用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
