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函数
Jul 21 Javascript
js 火狐下取本地路径实现思路
Apr 02 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
Jun 05 Javascript
JavaScript模块化开发之SeaJS
Dec 13 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
May 17 Javascript
利用jquery实现下拉框的禁用与启用
Dec 07 Javascript
Vue Cli3 创建项目的方法步骤
Oct 15 Javascript
微信小程序公用参数与公用方法用法示例
Jan 09 Javascript
js中比较两个对象是否相同的方法示例
Sep 02 Javascript
Vue 嵌套路由使用总结(推荐)
Jan 13 Javascript
javascript实现滚轮轮播图片
Dec 13 Javascript
JavaScript实现两个数组的交集
Mar 25 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 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
2015/12/21 PHP
js树形控件脚本代码
2008/07/24 Javascript
js 函数的副作用分析
2011/08/23 Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
2014/03/05 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
jquery序列化方法实例分析
2015/06/10 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
2015/11/07 Javascript
只需五句话搞定JavaScript作用域(经典)
2016/07/26 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
微信小程序Page中data数据操作和函数调用方法
2019/05/08 Javascript
Vue中img的src是动态渲染时不显示的解决
2019/11/14 Javascript
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
2020/01/09 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
Yahoo-PHP面试题4
2012/05/05 面试题
党组织公开承诺书
2014/03/29 职场文书
家庭教育的心得体会
2014/09/01 职场文书
乡镇镇长个人整改措施
2014/10/01 职场文书
2015年创先争优活动总结
2015/03/27 职场文书
2019年警察入党转正申请书最新范文
2019/09/03 职场文书
JavaScript 语句之常用 for 循环详解
2021/03/29 Javascript
react中props 的使用及进行限制的方法
2021/04/28 Javascript
python scrapy简单模拟登录的代码分析
2021/07/21 Python
详细聊聊MySQL中慢SQL优化的方向
2021/08/30 MySQL
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技
MySQL数据库查询之多表查询总结
2022/08/05 MySQL