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 相关文章推荐
Prototype String对象 学习
Jul 19 Javascript
js操作ajax返回的json的注意问题!
Feb 23 Javascript
jquery中选择块并改变属性值的方法
Jul 31 Javascript
jQuery实现单击按钮遮罩弹出对话框(仿天猫的删除对话框)
Apr 10 Javascript
JavaScript判断变量是否为数组的方法(Array)
Feb 24 Javascript
AngularJs  Creating Services详解及示例代码
Sep 02 Javascript
基于JavaScript实现窗口拖动效果
Jan 18 Javascript
前端页面文件拖拽上传模块js代码示例
May 19 Javascript
javascript实现文字无缝滚动效果
Aug 26 Javascript
AngularJS 控制器 controller的详解
Oct 17 Javascript
微信小程序实现日历效果
Dec 28 Javascript
js+audio实现音乐播放器
Sep 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中json_encode、json_decode与serialize、unserialize的性能测试分析
2010/06/09 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
jquery isEmptyObject判断是否为空对象的函数
2011/02/14 Javascript
跨浏览器的事件对象介绍
2012/06/27 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
ajax上传时参数提交不更新等相关问题
2012/12/11 Javascript
JQuery解析HTML、JSON和XML实例详解
2014/03/29 Javascript
浅谈Unicode与JavaScript的发展史
2015/01/19 Javascript
jquery代码实现多选、不同分享功能
2015/07/31 Javascript
微信小程序本作用域下调用全局JS详解及实例
2017/02/22 Javascript
利用CDN加速react webpack打包后的文件详解
2018/02/22 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
js get和post请求实现代码解析
2020/02/06 Javascript
Python中的面向对象编程详解(上)
2015/04/13 Python
python编写微信远程控制电脑的程序
2018/01/05 Python
anaconda如何查看并管理python环境
2019/07/05 Python
tensorflow图像裁剪进行数据增强操作
2020/06/30 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
h5页面唤起app如果没安装就跳转下载(iOS和Android)
2020/06/03 HTML / CSS
Lucene推荐的分页方式是什么?
2015/12/07 面试题
自我鉴定范文
2013/11/10 职场文书
学校安全工作制度
2014/01/19 职场文书
职工运动会邀请函
2014/02/02 职场文书
技术比武方案
2014/05/19 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
公司委托书格式范文
2014/10/09 职场文书
材料采购员岗位职责
2015/04/03 职场文书
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
解决pytorch 损失函数中输入输出不匹配的问题
2021/06/05 Python
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers