これは非常に基本的な質問かもしれませんが、まったく理解できません。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) {
...
});