我可以创建一个同时监听HTTP和HTTPS的Express服务器,使用相同的路由和相同的中间件吗?
目前,我使用HTTP上的Express来实现这一点,使用stunnel个 tunel HTTPS来实现,但我更喜欢纯 node 解决方案.
我可以用这段代码实现,但使用标记为private的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 );