Express的HTTP重定向到HTTPS的方法


Posted in Javascript onJune 06, 2018

我本地测试时, HTTP使用3000端口, HTTPS使用443.

同时监听HTTP和HTTPS

参考上一篇文章Express本地测试HTTPS

转发所有GET请求

httpApp.get("*", (req, res, next) => {
  let host = req.headers.host;
  host = host.replace(/\:\d+$/, ''); // Remove port number
  res.redirect(`https://${host}${req.path}`);
});

相当于自己拼接上https的链接然后redirect. 此时浏览器会收到302 (MOVED_TEMPORARILY)状态码, 并重定向到HTTPS.

转发所有请求

httpApp.all("*", (req, res, next) => {
  let host = req.headers.host;
  host = host.replace(/\:\d+$/, ''); // Remove port number
  res.redirect(307, `https://${host}${req.path}`);
});

注意这里面有两个修改:

  1. httpApp.get 改成了 httpApp.all
  2. redirect时加上了第一个参数307 (TEMPORARY_REDIRECT)

只加上第一个修改的话, 重定向的时候不会保留Method, 导致POST请求变成了GET请求. 加上第二个修改就好了.

参考:

How do I redirect all unmatched urls with Express?
Node.js with Express: how to redirect a POST request

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
有关JavaScript的10个怪癖和秘密分享
Aug 28 Javascript
javascript模拟post提交隐藏地址栏的参数
Sep 03 Javascript
javascript实现的闭包简单实例
Jul 17 Javascript
Javascript实现可旋转的圆圈实例代码
Aug 04 Javascript
详解JavaScript语言的基本语法要求
Nov 20 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
May 11 Javascript
js仿iphone秒表功能 计算平均数
Jan 11 Javascript
Angular实现响应式表单
Aug 04 Javascript
Vue-cli 使用json server在本地模拟请求数据的示例代码
Nov 02 Javascript
js实现指定时间倒计时效果
Aug 26 Javascript
Js逆向实现滑动验证码图片还原的示例代码
Mar 10 Javascript
JavaScript语句错误throw、try及catch实例解析
Aug 18 Javascript
vue组件实现可搜索下拉框扩展
Oct 23 #Javascript
微信小程序实现美团菜单
Jun 06 #Javascript
详解express + mock让前后台并行开发
Jun 06 #Javascript
vue element项目引入icon图标的方法
Jun 06 #Javascript
vue脚手架搭建过程图解
Jun 06 #Javascript
vue左右侧联动滚动的实现代码
Jun 06 #Javascript
Express本地测试HTTPS的示例代码
Jun 06 #Javascript
You might like
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
Sublime里直接运行PHP配置方法
2014/11/28 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
jquery里的正则表达式说明
2011/08/03 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
cument.execCommand()用法深入理解
2012/12/04 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
node.js实现微信开发之获取用户授权
2019/03/18 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
python实现画圆功能
2018/01/25 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
2018/04/02 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
为数据库创建索引都需要注意些什么
2012/07/17 面试题
环境科学专业优秀毕业生自荐书
2014/02/03 职场文书
《骆驼和羊》教学反思
2014/02/27 职场文书
大家访活动实施方案
2014/03/10 职场文书
幼儿园安全责任书
2014/04/14 职场文书
2014标准社保办理委托书
2014/10/06 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
营运督导岗位职责
2015/04/10 职场文书
工作简报格式范文
2015/07/21 职场文书
公司年会晚会开幕词
2019/04/02 职场文书
python获取对象信息的实例详解
2021/07/07 Python
win10电脑右下角输入法图标不见了?Win10右下角不显示输入法的解决方法
2022/07/23 数码科技