2017-12-25 4 views
1

私はnet.Serverを使用するサーバーを持っており、http.Serverexpress()を使用する2つのサーバーも持っています。そしてそれは私がs_https_expのハンドラとしてs_netを使用して、このnet.serverを使用してhttpを処理し、すべてをすぐに表現する

... 
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.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>"); 
}); 

を行うが、コンソール上で、私はただ、それだけでs_exp要求から応答します

H:\NodeJS\web3>node index.js 
listening on 80 
request to s_exp 

を取得します。
どうすればそれらを手に入れることができますか?
incoming connection to s_netrequest to s_http、およびrequest to s_exp
参照:
https://nodejs.org/dist/latest-v9.x/docs/api/net.html#net_server_listen_handle_backlog_callback

+1

何がポイントですか?エクスプレス・サーバーを1つ作成し、必要なイベント・リスナーを適用してください。これは、カバーの下にあるTCPサーバーでもあるhttpサーバーをカバーします。 – jfriend00

+0

ポイントは何ですか? –

+0

私はそれをやっています...ああ。知りません。私はそれらをすべて一緒にしたい。私は役に立たないものを作りました。しかし、たぶん、何も変更せずに新鮮なリクエストをしたいと思うし、httpにリンクして一緒に表現したい –

答えて

1

あなたはExpressを使用してサーバーを作成する場合、あなたはすでにhttpサーバを持っています。それは着信要求の要求ハンドラとしてExpressを持つ単なるhttpサーバです。そして、httpサーバはnet.Serverから継承しているので、すでにTCP/IPサーバです。 1台のエクスプレスサーバーを作成し、さまざまなサーバーイベントのイベントリスナーを設定するなど、express、httpまたはnet.Server機能を使用できます。

したがって、一般的なExpressサーバーを作成するだけで、すでに3つすべてが一緒になっています。 3つの別個のサーバーを作成し、それらを何らかの形で組み合わせようとする必要性またはポイントはありません。

関連する問題