2 つの方法で使用できexpress
ます。つまり、2 つの方法で初期化できます。
var app = express();
またvar app = new express();
見た目から、どちらもコンストラクターを呼び出しているので、実際に2つに違いはありますか?
実際の違いがない場合、私が見たすべてのチュートリアルは、2 番目の方法ではなく最初の方法でそれを行うのはなぜですか。
この場合express()
、関数として呼び出す方が正しいです。
function createApplication() {
var app = connect();
utils.merge(app, proto);
app.request = { __proto__: req, app: app };
app.response = { __proto__: res, app: app };
app.init();
return app;
}
これは基本的にファクトリー関数であり、コンストラクターではありません。キーワードを使用new
すると、不要なオブジェクトが作成されます。これは、 がオブジェクトを返すため、キーワードが作成createApplication
する自動オブジェクトが破棄されるため、すぐに破棄されます(これが JavaScript 言語のしくみです)。this
new
したがって、答えは両方のバージョンが正常に動作するということですが、new
ここでは使用する必要はありません。