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 fullscreen全屏实现代码
Apr 09 Javascript
JS高级拖动技术 setCapture,releaseCapture
Jul 31 Javascript
实例讲解JS中数组Array的操作方法
May 09 Javascript
ExpressJS入门实例
Jan 14 Javascript
Javascript实现div层渐隐效果的方法
May 30 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
Apr 06 Javascript
微信小程序实现tab和swiper切换结合效果
Jul 17 Javascript
vue中element组件样式修改无效的解决方法
Feb 03 Javascript
vue中的v-if和v-show的区别详解
Sep 01 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
Nov 19 Javascript
JavaScript实现简单贪吃蛇效果
Mar 09 Javascript
uniapp,微信小程序中使用 MQTT的问题
Jul 11 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二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
动态添加js事件实现代码
2009/03/12 Javascript
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
JavaScript中的值类型转换介绍
2014/12/31 Javascript
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
给easyui的datebox控件添加清空按钮的实现方法
2016/11/09 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
vue实现树状表格效果
2020/12/29 Vue.js
一个超级简单的python web程序
2014/09/11 Python
详解Django中Request对象的相关用法
2015/07/17 Python
python smtplib发送带附件邮件小程序
2018/05/22 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
基于python实现复制文件并重命名
2020/09/16 Python
PyCharm中关于安装第三方包的三个建议
2020/09/17 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
利用纯CSS3实现文字向右循环闪过效果实例(可用于移动端)
2017/06/15 HTML / CSS
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
大学生求职简历的自我评价范文
2013/10/12 职场文书
计算机应用职专应届生求职信
2013/11/12 职场文书
咖啡蛋糕店创业计划书
2014/01/28 职场文书
二手房买卖协议书
2014/04/10 职场文书
团委竞选演讲稿
2014/04/24 职场文书
助理政工师申报材料
2014/06/03 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
井冈山红色之旅心得体会
2014/10/07 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
导游词之襄阳古城
2019/09/27 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
python-for x in range的用法(注意要点、细节)
2021/05/10 Python
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript