使用Net.Server处理HTTP并立即表达全部



我使用net.Server的服务器,还使用http.Serverexpress()的2台服务器。看起来像这样

...
var s_net = net.createServer();
var s_http = http.createServer();
var s_exp = express();
s_net.listen(opt.port);
s_http.listen(s_net);
s_exp.listen(s_net);
console.log(`listening on ${opt.port}`);

我将s_net用作s_https_exp的处理程序。然后,我做

s_net.on("connection", function(c){
    console.log("incoming connection to s_net")
})
s_http.on("request", function(req, res){
    console.log("request to s_http");
});
s_exp.all("/*", function(req, res, next){
    console.log("request to s_exp");
    res.send("<h1>Hello World!</h1>");
});

但是在控制台上,我只是得到

H:NodeJSweb3>node index.js
listening on 80
request to s_exp

在哪里,它仅根据s_exp请求做出响应。
我怎么能全部得到它们?
incoming connection to s_netrequest to s_httprequest to s_exp
参考:
https://nodejs.org/dist/latest-v9.x/docs/api/net.html#net_server_server_listen_handle_handle_handle_handle_backlog_callback

使用Express创建服务器时,您已经拥有HTTP服务器。这只是一台HTTP服务器,它已作为传入请求的请求处理程序表示。而且,HTTP服务器从net.Server继承,因此已经是TCP/IP服务器。创建一台Express服务器,然后您可以使用任何Express,HTTP或Net.Server功能,包括为各种服务器事件设置事件侦听器。

因此,仅创建一个通用的Express服务器已经将所有三个都放在一起。没有必要或点来创建三个独立的服务器,然后尝试以某种方式组合它们。

相关内容

  • 没有找到相关文章

最新更新