Express.js - app.listen と server.listen の違い 質問する

Express.js - app.listen と server.listen の違い 質問する

これは非常に基本的な質問かもしれませんが、まったく理解できません。Express.js を使用してアプリを作成することと、ポート 1234 でリッスンしてアプリを起動することの違いは何ですか例:

var express = require('express');
var app = express();

//app.configure, app.use etc

app.listen(1234);

http サーバーを追加します:

var express = require('express');
var http = require('http');

var app = express();
var server = http.createServer(app);

//app.configure, app.use etc

server.listen(1234);

違いは何ですか?
に移動するとhttp://localhost:1234、同じ出力が得られます。

ベストアンサー1

2 番目の形式 (Express に HTTP サーバーを作成させるのではなく、自分で HTTP サーバーを作成する) は、HTTP サーバーを再利用する場合 (たとえば、socket.io同じ HTTP サーバー インスタンス内で実行する場合) に便利です。

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

おすすめ記事