当前位置: 首页 > news >正文

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

触摸屏维修是一个比较复杂的过程,并且其中会涉及到各个部件的问题,这对于操作人员来说,关键在于是否可以找到问题所在。维修过程中建议先检查各接线接口是否出现松动,然后检查串口及中断号是否有冲突,若有冲突&#xf…...

idm下载到99.99%不动了 idm突然不下载了 idm下载到最后没速度咋办 IDM下载后没网了是怎么回事

idm能够帮助我们下载不同类型的网页视频,并且基于多线程下载技术的助力下使其下载速度比原来提升数倍以上,因此成为了许多朋友下载的小助手。但也有朋友反映idm下载网页视频超时连接不上,idm下载网页视频突然停止,究竟这些情况我们…...

设计模式-07 设计模式-观察者模式(Observer Pattern)

设计模式-07 设计模式-观察者模式(Observer Pattern) 1.定义 观察者模式是一种软件设计模式,它定义了一种一对多的依赖关系,其中一个对象(称为“主题”)维护了一个依赖对象的列表(称为“观察者”…...

戒烟网站|基于SSM+vue的戒烟网站系统的设计与实现(源码+数据库+文档)

戒烟网站 目录 基于SSM+vue的戒烟网站系统的设计与实现 一、前言 二、系统设计 三、系统功能设计 1网站功能模块 2管理员功能模块 3用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

云计算——弹性云计算器(ECS)

弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

小木的算法日记-多叉树的递归/层序遍历

🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...