我可以使用相同的路由和相同的中间件创建侦听HTTP和HTTPS的Express服务器吗?针对单个快递应用程序监听HTTP和HTTPS
目前我在HTTP上使用Express执行此操作,使用stunnel将HTTPS转换为Express,但我更喜欢纯节点解决方案。
我可以用这个代码做到这一点,但使用handle
方法被标记为私有:
var express = require('express')
, https = require("https")
, fs = require('fs');
var app = express.createServer();
// init routes and middlewares
app.listen(80);
var privateKey = fs.readFileSync('privatekey.pem').toString();
var certificate = fs.readFileSync('certificate.pem').toString();
var options = {key: privateKey, cert: certificate};
https.createServer(options, function(req,res)
{
app.handle(req, res);
}).listen(443);
回答简洁这里:http://stackoverflow.com/a/23894573/1882064 – arcseldon