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 相关文章推荐
IE6下focus与blur错乱的解决方案
Jul 31 Javascript
open 动态修改img的onclick事件示例代码
Nov 13 Javascript
js实现对table动态添加、删除和更新的方法
Feb 10 Javascript
实例浅析js的this
Dec 11 Javascript
JQuery异步提交表单与文件上传功能示例
Jan 12 Javascript
js仿百度音乐全选操作
Jan 13 Javascript
使用gulp搭建本地服务器并实现模拟ajax
Apr 05 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
May 16 Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
Aug 25 Javascript
vue删除html内容的标签样式实例
Sep 13 Javascript
微信小程序实现自动定位功能
Oct 31 Javascript
创建Vue项目以及引入Iview的方法示例
Dec 03 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一行代码获取文件后缀名实例分析
2014/11/12 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
2015/12/10 PHP
php事务回滚简单实现方法示例
2017/03/28 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
获取DOM对象的几种扩展及简写
2006/10/09 Javascript
javascript 全等号运算符使用说明
2010/05/31 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
JavaScript操作 url 中 search 部分方法函数
2016/06/15 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
使用ionic播放轮询广告的实现方法(必看)
2017/04/24 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
2017/07/10 jQuery
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
JS从非数组对象转数组的方法小结
2018/03/26 Javascript
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
解决element ui select下拉框不回显数据问题的解决
2019/02/20 Javascript
仿ElementUI实现一个Form表单的实现代码
2019/04/23 Javascript
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
Python实现合并两个列表的方法分析
2018/05/28 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
联想法国官方网站:Lenovo法国
2018/10/18 全球购物
局部内部类是否可以访问非final变量?
2013/04/20 面试题
介绍一下linux的文件系统
2012/03/20 面试题
财务工作个人求职的自我评价
2013/12/19 职场文书
促销活动策划方案
2014/01/12 职场文书
联欢晚会主持词
2014/03/25 职场文书
学生会部长竞聘书
2014/03/31 职场文书
小学先进集体事迹材料
2014/05/31 职场文书
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
重阳节简报
2015/07/20 职场文书
七年级作文之环保作文
2019/10/17 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers