在一个express应用中监听HTTP和HTTPS
- 论坛
- 在一个express应用中监听HTTP和HTTPS
16 浏览
在一个express应用中监听HTTP和HTTPS
我能否创建一个同时监听HTTP和HTTPS的Express服务器,拥有相同的路由和中间件?
目前我使用Express在HTTP上实现了这一点,使用stunnel将HTTPS隧道转发给Express,但我更喜欢一个纯Node的解决方案。
我可以使用下面的代码来实现,但是它使用了被标记为私有的handle方法:
var express = require('express'),
https = require("https"),
fs = require('fs');
var app = express.createServer();
// 初始化路由和中间件
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);