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 相关文章推荐
Jquery replace 字符替换实现代码
Dec 02 Javascript
按给定几率进行随机抽取的js代码
Dec 28 Javascript
jQuery实现列表自动循环滚动鼠标悬停时停止滚动
Sep 06 Javascript
javascript模拟实现C# String.format函数功能代码
Nov 25 Javascript
jQuery中end()方法用法实例
Jan 08 Javascript
js+css实现文字散开重组动画特效代码分享
Aug 21 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
Nov 11 jQuery
详解使用create-react-app添加css modules、sasss和antd
Jul 31 Javascript
Vue插值、表达式、分隔符、指令知识小结
Oct 12 Javascript
使用webpack4编译并压缩ES6代码的方法示例
Apr 24 Javascript
Vue 解决多级动态面包屑导航的问题
Nov 04 Javascript
vue router 动态路由清除方式
May 25 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
本地计算机无法启动Apache故障处理
2014/08/08 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
prototype 源码中文说明之 prototype.js
2006/09/22 Javascript
JavaScript中Object和Function的关系小结
2009/09/26 Javascript
DWZ刷新dialog解决方法
2013/03/03 Javascript
jQuery的cookie插件实现保存用户登陆信息
2014/04/15 Javascript
javascript中数组和字符串的方法对比
2016/07/20 Javascript
数据结构中的各种排序方法小结(JS实现)
2016/07/23 Javascript
ReactNative-JS 调用原生方法实例代码
2016/10/08 Javascript
使用Javascript监控前端相关数据的代码
2016/10/27 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
Vue无限滑动周选择日期的组件的示例代码
2018/07/18 Javascript
vue axios请求频繁时取消上一次请求的方法
2018/11/10 Javascript
Vue实现日历小插件
2019/06/26 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
Python中偏函数用法示例
2018/06/07 Python
python在html中插入简单的代码并加上时间戳的方法
2018/10/16 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
简单了解Python多态与属性运行原理
2020/06/15 Python
亚马逊印度站:Amazon.in
2017/10/15 全球购物
Fossil美国官网:化石手表、手袋、首饰及配饰
2019/02/17 全球购物
创业计划书六个要素
2013/12/26 职场文书
20年同学聚会邀请函
2014/02/04 职场文书
小学社团活动总结
2014/06/27 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书
2015暑期社会实践调查报告
2015/07/14 职场文书
一篇文章带你复习java知识点
2021/06/28 Java/Android