在Node.js中创建对象以附加到HTTP和HTTPS Express server



好的,所以我有一个node.js应用程序与两个快速服务器。一个监听端口80 (HTTP),一个监听端口443 (HTTPS)。

现在,这些并不都有相同的路由。恰恰相反,大多数东西都是通过HTTPS提供的,有些是通过HTTP提供的。但是,有一些重叠。

所以,我想知道是否有一种方法可以将路由"绑定"到secureApp和App,因为我叫它们,这样我就不必写两次路由了?

交货。现在我有两组相同的路由(一个用于HTTP,一个用于HTTPS):

app.get('/tweet-stats.json', function(req, res){
    res.set('Content-Type', 'application/json');
    res.send(publicTweetStatus());
});
secureApp.get('/tweet-stats.json', function(req, res){
    res.set('Content-Type', 'application/json');
    res.send(publicTweetStatus());
});

我想这样做:

model.get('/tweet-stats.json', function(req, res){
    res.set('Content-Type', 'application/json');
    res.send(publicTweetStatus());
});
app.handle.bind(model);
secureApp.handle.bind(model);

这可能吗?如果我只在所有端口上管理这个特定路由的一个实例,我会做得更好。

你为什么要重复一遍?只阻塞不能使用的路由

function secureOnly(req, res, next) {
  if (!req.secure) {
    res.send(426, 'sorry')
  else {
    next()
  }
}

和监听两个端口

http.createServer(app).listen(80)
https.createServer(app).listen(443)

最新更新