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 相关文章推荐
arguments对象
Nov 20 Javascript
我也种棵OO树JXTree[js+css+xml]
Apr 02 Javascript
一个可绑定数据源的jQuery数据表格插件
Jul 17 Javascript
js运动框架_包括图片的淡入淡出效果
May 11 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
Sep 15 Javascript
JS加jquery简单实现标签元素的显示或隐藏
Sep 23 Javascript
微信小程序 九宫格实例代码
Jan 21 Javascript
bootstrap中的导航条实例代码详解
May 20 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
Jul 05 Javascript
JS手写一个自定义Promise操作示例
Mar 16 Javascript
Javascript 模拟mvc实现点餐程序案例详解
Dec 24 Javascript
ant design vue的form表单取值方法
Jun 01 Vue.js
使用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
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
codeigniter中实现一次性加载多个view的方法
2015/03/20 PHP
php控制文件下载速度的方法
2015/03/24 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
PHP实现的mongoDB数据库操作类完整实例
2018/04/10 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
双击滚屏-常用推荐
2006/11/29 Javascript
checkbox 多选框 联动实现代码
2008/10/22 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
js编写一个简单的产品放大效果代码
2016/06/27 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
详解react、redux、react-redux之间的关系
2018/04/11 Javascript
express express-session的使用小结
2018/12/12 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
2020/09/21 Javascript
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
numpy数组广播的机制
2019/07/12 Python
django云端留言板实例详解
2019/07/22 Python
详解pandas映射与数据转换
2021/01/22 Python
巴黎一票通:The Paris Pass
2018/02/10 全球购物
2014年教师培训的自我评价
2014/01/03 职场文书
查环查孕证明
2014/01/10 职场文书
土木工程师职业规划范文
2014/03/07 职场文书
教师拔河比赛广播稿
2014/10/14 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书
2015年中个人总结范文
2015/03/10 职场文书
2015年材料员工作总结
2015/04/30 职场文书
戒赌保证书
2015/05/11 职场文书
如何在CSS中绘制曲线图形及展示动画
2021/05/24 HTML / CSS
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python