express启用https使用小记


Posted in Javascript onMay 21, 2019

微信小程序的服务器域名只支持https和wss,我用nodejs的express作为后端服务,经百度和折腾,成功启用https服务。

总结以下几步,供参考。

1.申请SSL证书

笔者用的是腾讯云,申请的是为期一年免费的证书,具体申请步骤不展开介绍,颁发证书后,得到文件:

express启用https使用小记

需要用到的文件在文件夹IIS中。

express启用https使用小记

2.将证书放到项目中

将后缀为.pfx的证书文件放到express项目的静态文件夹中,笔者放在项目根目录下的public文件夹下。

express启用https使用小记

3.在express的index.js中引用证书

import express from 'express';
import fs from 'fs';
import path from 'path';
import bodyParser from 'body-parser';
// 引入history模块
import history from 'connect-history-api-fallback';
import https from 'https';
const app = express();
const options = {
  pfx: fs.readFileSync(path.join(__dirname, 'public','www.****.***.pfx')),
  passphrase: '***********'
};
//options有两个选项,一个是证书本体,一个是密码(刚刚的IIS文件夹的keystorePass.txt文件中)
let server = https.createServer(options,app);
app.use(history());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
app.use("/static/file",express.static(path.join(__dirname, 'public')));
app.use(function (req, res, next) {
  var err = new Error('Not Found');
  err.status = 404  next(err)});
// error handler
app.use(function (err, req, res, next) {
  res.status(err.status || 500);
  console.log(err);
  res.send(err.message)
});
// 设置监听端口
const SERVER_PORT = 3000;
server.listen(SERVER_PORT, (req, res) => {
  console.info(`服务已经启动,监听端口${SERVER_PORT}`)
})
export default app

引入https模块,设置options配置。

如上述代码,options有两个选项,一个是证书本体,一个是密码(刚刚的IIS文件夹的keystorePass.txt文件中)

之后定义server,传入option和express实例app,设置监听端口即可。

4.启动服务

将后端项目部署到服务器中,启动express,可正常访问https服务。

后言

笔者大四下,很遗憾之前完成毕业设计那段时间没有坚持写文章。

目前全栈开发了一款微信小程序,刚上线不久。还写了一款桌面程序,不过引入微信支付不太顺利。

希望能把自己的经验和遇到的坑多多写成文章记录下来,对同样有兴趣的朋友提供参考。也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery入门问答 整理的几个常见的初学者问题
Feb 22 Javascript
关于jQuery的inArray 方法介绍
Oct 08 Javascript
JQuery1.6 使用方法三
Nov 23 Javascript
解析页面加载与js函数的执行 onload or ready
Dec 12 Javascript
Node.js中对通用模块的封装方法
Jun 06 Javascript
javascript的函数劫持浅析
Sep 26 Javascript
JS限定手机版中图片大小随分辨率自动调整的方法
Dec 05 Javascript
JavaScript设计模式之代理模式详解
Jun 09 Javascript
基于JS实现网页中的选项卡(两种方法)
Jun 16 Javascript
浅谈vue方法内的方法使用this的问题
Sep 15 Javascript
angularJs select绑定的model取不到值的解决方法
Oct 08 Javascript
Vue内部渲染视图的方法
Sep 02 Javascript
使用express获取微信小程序二维码小记
May 21 #Javascript
小程序server请求微信服务器超时的解决方法
May 21 #Javascript
深入浅析nuxt.js基于ssh的vue通用框架
May 21 #Javascript
用node.js写一个jenkins发版脚本
May 21 #Javascript
vue-router源码之history类的浅析
May 21 #Javascript
vue 地图可视化 maptalks 篇实例代码详解
May 21 #Javascript
vue 中使用 watch 出现了如下的报错的原因分析
May 21 #Javascript
You might like
url decode problem 解决方法
2011/12/26 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
php计算整个目录大小的方法
2015/06/01 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
JavaScript入门教程(8) Location地址对象
2009/01/31 Javascript
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
使用javascipt---实现二分查找法
2013/04/10 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
jQuery实现页面滚动时动态加载内容的方法
2015/03/20 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
JavaScript:Date类型全面解析
2016/05/19 Javascript
angular中的cookie读写方法
2017/08/02 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
使用Node.js实现一个多人游戏服务器引擎
2019/03/13 Javascript
详解Vue中的Props与Data细微差别
2020/03/02 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
2020/06/15 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
图解Python变量与赋值
2018/04/03 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
python中的二维列表实例详解
2018/06/19 Python
python多进程读图提取特征存npy
2019/05/21 Python
python basemap 画出经纬度并标定的实例
2019/07/09 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
CSS3实现瀑布流布局与无限加载图片相册的实例代码
2016/12/22 HTML / CSS
驴妈妈旅游网:中国新型的B2C旅游电子商务网站
2016/08/16 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
买卖协议书范本
2014/04/21 职场文书
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
入党心得体会
2019/06/20 职场文书
详解JAVA中的OPTIONAL
2021/06/14 Java/Android
Python pyecharts绘制条形图详解
2022/04/02 Python
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python