本文介绍了将4.x重定向到http的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下代码:
var https = require('https'); var http = require('http'); var express = require('express'); var app = express(); var router = express.Router(); app.use('/', router); //listen server on https var server = https.createServer(config.sslCredential, app); server.listen(config.serverPort); //listen server on http, and always redirect to https var httpServer = http.createServer(function(req,res){ res.redirect(config.serverDomain+req.url); }); httpServer.listen(config.httpServerPort);但不知何故,我无法将https请求重定向到https请求,我该怎么办正确使用express 4.x的node.js?
but somehow i can't get https request to be redirected into https request, how should i do this correctly on node.js with express 4.x ?
推荐答案从我自己的答案(其中btw是on express 3.0)
Quoting a middleware solution from my own answer (which btw was on express 3.0)
app.all('*', ensureSecure); // at top of routing calls http.createServer(app).listen(80) https.createServer(sslOptions, app).listen(443) function ensureSecure(req, res, next){ if(req.secure){ // OK, continue return next(); }; // handle port numbers if you need non defaults // res.redirect('' + req.host + req.url); // express 3.x res.redirect('' + req.hostname + req.url); // express 4.x }更多推荐
将4.x重定向到http
发布评论