Express.js-app.listenとserver.listen
Express Js App Listen Vs Server
解決:
2番目の形式(ExpressでHTTPサーバーを作成するのではなく、自分でHTTPサーバーを作成する)は、HTTPサーバーを再利用する場合、たとえば実行する場合に役立ちます。同じHTTPサーバーインスタンス内のsocket.io:
var express = require( 'express'); var app = express(); var server = require( 'http')。createServer(app); var io = require( 'socket.io')。listen(server); ... server.listen(1234);しかし、app.listen()はHTTPサーバーインスタンスも返すため、少し書き直すだけで、HTTPサーバーを自分で作成しなくても同様のことができます。
var express = require( 'express'); var app = express(); // app.use / routes / etc ... var server = app.listen(3033); var io = require( 'socket.io')。listen(server); io.sockets.on( 'connection'、function(socket){...});
アプリを使用することとhttpサーバーをリッスンすることのもう1つの違いは、 httpsサーバー
httpsを設定するには、以下のコードが必要です。
var https = require( 'https'); var server = https.createServer(app).listen(config.port、function(){console.log( 'Httpsアプリが開始されました');});Expressのアプリはhttpサーバーのみを返します。Expressで設定することはできないため、httpsserverコマンドを使用する必要があります。
var express = require( 'express'); var app = express(); app.listen(1234);
時間厳守の目的で、少しティムの答えを拡張します。
公式ドキュメントから:
express()によって返されるアプリは、実際にはJavaScript関数です。 合格するように設計されています リクエストを処理するためのコールバックとしてノードのHTTPサーバーに送信します。
これにより、アプリはHTTPバージョンとHTTPSバージョンの両方に同じコードベースを簡単に提供できます。これは、アプリがこれらから継承しないためです(これは単なるコールバックです)。
http.createServer(app).listen(80); https.createServer(options、app).listen(443); NS app.listen() メソッドはを返します http.Server オブジェクトおよび(HTTPの場合)は 便利な方法 以下について:
app.listen = function(){var server = http.createServer(this); server.listen.apply(server、arguments);を返します。 };