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 相关文章推荐
js模仿html5 placeholder适应于不支持的浏览器
Jan 13 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
Jun 08 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
Aug 06 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
Dec 15 Javascript
JS优化与惰性载入函数实例分析
Apr 06 Javascript
socket.io实现在线群聊功能
Apr 07 Javascript
JavaScript简单实现合并两个Json对象的方法示例
Oct 16 Javascript
微信小程序实现下载进度条的方法
Dec 08 Javascript
vue两个组件间值的传递或修改方式
Jul 04 Javascript
vuex actions传递多参数的处理方法
Sep 18 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
May 03 Javascript
vue 组件销毁并重置的实现
Jan 13 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
php基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
PHP中require和include路径问题详解
2014/12/25 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
收藏Javascript中常用的55个经典技巧
2007/08/12 Javascript
javascript四舍五入函数代码分享(保留后几位)
2013/12/10 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
2016/07/14 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
2017/03/22 jQuery
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
AngularJS表单验证功能
2017/10/19 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
express框架下使用session的方法
2019/07/31 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
python 查找文件夹下所有文件 实现代码
2009/07/01 Python
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
python使用matplotlib绘制柱状图教程
2017/02/08 Python
python中使用zip函数出现错误的原因
2018/09/28 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
最简单的matplotlib安装教程(小白)
2020/07/28 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
HTML5实现直播间评论滚动效果的代码
2020/05/27 HTML / CSS
什么是"引用"?申明和使用"引用"要注意哪些问题?
2016/03/03 面试题
放飞梦想演讲稿
2014/05/05 职场文书
演讲比赛策划方案
2014/06/11 职场文书
班级课外活动总结
2014/07/09 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
离职报告范文
2014/11/04 职场文书
企业承诺书格式范文
2015/04/28 职场文书
maven依赖的version声明控制方式
2022/01/18 Java/Android
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers