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 相关文章推荐
表单项的name命名为submit、reset引起的问题
Dec 22 Javascript
js出生日期 年月日级联菜单示例代码
Jan 10 Javascript
JavaScript函数定义的常见注意事项小结
Sep 16 Javascript
jQuery操作JSON的CRUD用法实例
Feb 25 Javascript
JavaScript 封装一个tab效果源码分享
Sep 15 Javascript
JavaScript判断表单为空及获取焦点的方法
Feb 12 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
Nov 10 Javascript
jQuery实现遍历复选框的方法示例
Mar 06 Javascript
vue webpack打包优化操作技巧
Feb 22 Javascript
微信小程序中换行空格(多个空格)写法详解
Jul 10 Javascript
vue 实现axios拦截、页面跳转和token 验证
Jul 17 Javascript
微信小程序换肤功能实现代码(思路详解)
Aug 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 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
基于PHP CURL用法的深入分析
2013/06/09 PHP
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
php+mysql实现数据库随机重排实例
2014/10/17 PHP
PHP实现简单的新闻发布系统实例
2015/07/28 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
读jQuery之一(对象的组成)
2011/06/11 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
2015/12/02 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
2018/09/18 Javascript
vue使用axios上传文件(FormData)的方法
2019/04/14 Javascript
重学JS之显示强制类型转换详解
2019/06/30 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
关于ES6尾调用优化的使用
2020/09/11 Javascript
python检测远程端口是否打开的方法
2015/03/14 Python
Python对列表排序的方法实例分析
2015/05/16 Python
python整合ffmpeg实现视频文件的批量转换
2019/05/31 Python
对Python强大的可变参数传递机制详解
2019/06/13 Python
使用PyTorch训练一个图像分类器实例
2020/01/08 Python
粉红色的鲸鱼:Vineyard Vines
2018/02/17 全球购物
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
教师自我评价范例
2013/09/24 职场文书
银行出纳岗位职责
2013/11/25 职场文书
经贸日语专业个人求职信
2013/12/13 职场文书
工地门卫岗位职责
2013/12/30 职场文书
运动会广播稿60字
2014/01/15 职场文书
班主任新年寄语
2014/04/04 职场文书
自主招生推荐信范文
2014/05/10 职场文书
2014年教师节演讲稿范文
2014/09/10 职场文书
2015年乡镇卫生院妇幼保健工作总结
2015/05/19 职场文书
机器人总动员观后感
2015/06/09 职场文书
初中班主任教育随笔
2015/08/15 职场文书
基于Python实现将列表数据生成折线图
2022/03/23 Python