2016-11-04 6 views

答えて

6

Expressは、HTTPサーバーの要求ハンドラです。実行するにはHTTPサーバーが必要です。あなたは完全にここで何が起こっているかを理解するだけので、

import Express from 'express'; 
const app = new Express(); 
app.listen(80); 

しかし:あなたは1を自分で作成し、それが自身のHTTPサーバの作成することができたりExpressの要求ハンドラとしてappを渡すことができます。あなたがapp.listen()を使用している場合(the Express codeから示されるように)、それはやっているすべてはこれです:

だけで、独自のバニラhttpサーバを作成し、その上に .listen()を呼んでいる
app.listen = function listen() { 
    var server = http.createServer(this); 
    return server.listen.apply(server, arguments); 
}; 


あなただけのプレーン・バニラのhttpサーバを使用している場合、それは何のメリットは自分自身でそれを作るには本当にありませんので、Expressはあなたのためにそれを作成してもらうためにあなたにいくつかのコードが保存されます。いくつかの特別なオプションや設定でサーバーを作成したい場合、またはHTTPSサーバーを作成する場合は、エクスプローラーはプレーンバニラhttpサーバーを作成するだけなので、自分で作成してExpressリクエストハンドラーで設定する必要がありますそれをあなた自身で作成するように頼んでください。したがって、特別なオプションで作成する必要がある場合は、自分で作成してください。

+0

別々の 'http.Server'を作る習慣は非常に広まっています(例:[' socket.io'の例のコード](http://socket.io/docs/#using-with-express-3/4)も同様です)。私は多くの人々がそれを見て、それがどのように行われるべきだと思うかと思います。 – robertklep

+0

@robertklep - 独自のhttpサーバを手動で作成することは何も問題ありません。 Expressはあなたのためにそれを行うショートカットを提供しています。 – jfriend00

+0

ありがとうございます。その場合、httpサーバを明示的に作成するのは冗長ですか? – Paulos3000

関連する問題