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 相关文章推荐
JavaScript入门教程(8) Location地址对象
Jan 31 Javascript
Prototype 学习 工具函数学习($方法)
Jul 12 Javascript
javascript让setInteval里的函数参数中的this指向特定的对象
Jan 31 Javascript
真正的JQuery.ajax传递中文参数的解决方法
May 28 Javascript
Javascript异步编程的4种方法让你写出更出色的程序
Jan 17 Javascript
js复制网页内容并兼容各主流浏览器的代码
Dec 17 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
Dec 12 Javascript
基于jQuery实现点击列表加载更多效果
May 31 Javascript
利用VUE框架,实现列表分页功能示例代码
Jan 12 Javascript
深入理解AngularJs-scope的脏检查(一)
Jun 19 Javascript
AngularJS中ng-class用法实例分析
Jul 06 Javascript
React Fragment介绍与使用详解
Nov 11 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
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
php基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
2015/07/03 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
用prototype实现的简单小巧的多级联动菜单
2007/03/24 Javascript
关于jquery append() html时的小问题的解决方法
2010/12/16 Javascript
为JS扩展Array.prototype.indexOf引发的问题探讨及解决
2013/04/24 Javascript
用js实现输入提示(自动完成)的实例代码
2013/06/14 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
跨域传值即主页面与iframe之间互相传值
2013/12/09 Javascript
利用浏览器全屏api实现js全屏
2014/01/16 Javascript
在JavaScript中使用timer示例
2014/05/08 Javascript
JavaScript中实现Map的示例代码
2015/09/09 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
Node.js中流(stream)的使用方法示例
2017/07/16 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
vue的常用组件操作方法应用分析
2018/04/13 Javascript
Angular6 写一个简单的Select组件示例
2018/08/20 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
Python的Django框架中TEMPLATES项的设置教程
2015/05/29 Python
基于python list对象中嵌套元组使用sort时的排序方法
2018/04/18 Python
一文带你了解Python中的字符串是什么
2018/11/20 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
Cinque网上商店:德国服装品牌
2019/03/17 全球购物
RealTek面试题
2016/06/28 面试题
动物学专业毕业生求职信
2013/10/11 职场文书
《毛主席在花山》教学反思
2014/04/20 职场文书
领导干部学习“三严三实”思想汇报
2014/09/15 职场文书
全国法制宣传日活动总结2014
2014/11/01 职场文书
生产车间管理制度
2015/08/04 职场文书
Python 全局空间和局部空间
2022/04/06 Python