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 相关文章推荐
让JavaScript拥有类似Lambda表达式编程能力的方法
Sep 12 Javascript
超酷的网页音乐播放器DewPlayer使用方法
Dec 18 Javascript
分享27款非常棒的jQuery 表单插件
Mar 28 Javascript
javaScript使用EL表达式的几种方式
May 27 Javascript
javascript父、子页面交互技巧总结
Aug 08 Javascript
在JavaScript中操作数组之map()方法的使用
Jun 09 Javascript
JS使用post提交的两种方式
Dec 03 Javascript
浅析Javascript匿名函数与自执行函数
Feb 06 Javascript
Jqprint实现页面打印
Jan 06 Javascript
bootstrap fileinput 插件使用项目总结(经验)
Feb 22 Javascript
微信小程序当前时间时段选择器插件使用方法详解
Dec 28 Javascript
layui清空,重置表单数据的实例
Sep 12 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
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
TP5框架简单登录功能实现方法示例
2019/10/31 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
jquery常用技巧及常用方法列表集合
2011/04/06 Javascript
jquery实现邮箱自动补全功能示例分享
2014/02/17 Javascript
javascript实现当前页导航激活的方法
2015/02/27 Javascript
JS日期格式化之javascript Date format
2015/10/01 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
如何提高Dom访问速度
2017/01/05 Javascript
jQuery实现table表格checkbox全选的方法分析
2018/07/04 jQuery
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
三步实现ionic3点击退出app程序
2019/09/17 Javascript
[42:56]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[01:09]模型精美,特效酷炫!TI9不朽宝藏Ⅰ鉴赏
2019/05/10 DOTA
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
详谈Python高阶函数与函数装饰器(推荐)
2017/09/30 Python
Python函数返回不定数量的值方法
2019/01/22 Python
python 整数越界问题详解
2019/06/27 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
2020/02/25 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
将世界上最美丽的摄影作品转化为艺术作品:Photos.com
2017/11/28 全球购物
资产经营总监岗位职责范文
2013/12/01 职场文书
四年级数学教学反思
2014/02/02 职场文书
教师节促销活动方案
2014/02/14 职场文书
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书
清洁工岗位职责
2015/02/13 职场文书
毕业设计工作总结
2015/08/14 职场文书
车位出租协议书范本
2016/03/19 职场文书
索尼ICF-5900W收音机测评
2022/04/24 无线电