586

これは非常に基本的な質問かもしれませんが、私にはさっぱりわかりません。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、同じ出力が得られます。

4

5 に答える 5

690

2 番目の形式 (Express で HTTP サーバーを作成するのではなく、HTTP サーバーを自分で作成する) はsocket.io、同じ HTTP サーバー インスタンス内で実行するなど、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) {
  ...
});
于 2013-07-17T10:18:49.460 に答える
11

Express は基本的に http モジュールのラッパーであり、開発者が簡単に使用できるように作成されています。

  1. Express を使用して、HTTP リクエストに (簡単に) 応答するようにミドルウェアをセットアップできます。
  2. Express を使用してテンプレートに引数を渡すことに基づいて、HTML ページを動的にレンダリングできます。
  3. Express を使用して簡単にルーティングを定義することもできます。
于 2015-12-04T13:12:18.293 に答える