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 相关文章推荐
jscript之List Excel Color Values
Jun 13 Javascript
javascript与CSS复习(二)
Jun 29 Javascript
jquery应该如何来设置改变按钮input的onclick事件
Dec 10 Javascript
js下拉菜单语言选项简单实现
Sep 23 Javascript
解决node-webkit 不支持html5播放mp4视频的方法
Mar 11 Javascript
JS实现slide文字框缩放伸展效果代码
Nov 05 Javascript
跟我学习javascript的prototype原型和原型链
Nov 18 Javascript
js 截取或者替换字符串中的数字实现方法
Jun 13 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
Apr 28 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
Sep 11 Javascript
vue中render函数的使用详解
Oct 12 Javascript
Vue+Element-U实现分页显示效果
Nov 15 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
东芝TOSHIBA RP-F11电路分析
2021/03/02 无线电
php数组(array)输出的三种形式详解
2013/06/05 PHP
详解PHP执行定时任务的实现思路
2015/12/21 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
PHP中in_array函数使用的问题与解决办法
2016/09/11 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
2017/08/15 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
js的with语句使用方法
2007/09/21 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
在Node.js中实现文件复制的方法和实例
2014/06/05 Javascript
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
jQuery 特性操作详解及实例代码
2016/09/29 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
2016/11/07 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
angularjs 页面自适应高度的方法
2018/01/17 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
python语音识别实践之百度语音API
2018/08/30 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
HTML5 Canvas像素处理使用接口介绍
2012/12/02 HTML / CSS
基于HTML5 Canvas:字符串,路径,背景,图片的详解
2013/05/09 HTML / CSS
PHP面试题-$message和$$message的区别
2015/12/08 面试题
致跳高运动员广播稿
2014/01/13 职场文书
职业生涯规划书前言
2014/04/15 职场文书
片区教研活动总结
2014/07/02 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
2014幼儿园中班工作总结
2014/11/10 职场文书
毕业班班主任工作总结2015
2015/07/23 职场文书
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技