5

Express/Connect ミドルウェアを使用してvhostいますが、その使用方法について少し混乱しています。1 つのルート セットをサブドメインを持つホストに適用し、別のセットをサブドメインのないホストに適用したいと考えています。

私のapp.jsファイルには、

var app = express.createServer();

app.use...(middlware)...
app.use(express.vhost('*.host', require('./domain_routing')("yes")));
app.use(express.vhost('host', require('./domain_routing')("no")));
app.use...(middlware)...

app.listen(8000);

そして次にdomain_routing.js

module.exports = function(subdomain){

  var app = express.createServer();

  require('./routes')(app, subdomain);

  return app;
}

次に、渡されたサブドメイン変数が であるかroutes.jsであるかに応じて、一連のルートを実行する予定です。"yes""no"

私は正しい方向に進んでいますか、それともこのミドルウェアの使用方法ではありませんか? app2 つのサーバー インスタンスが作成されているという事実に少し混乱しています (Web 上の例ではこのように動作しているように見えます)。appサブドメインルーターの代わりに別のサーバーインスタンスを作成する代わりに、元のサーバーインスタンスを渡してそれを使用する必要がありますか?

4

1 に答える 1

2

はい、あなたは正しい軌道に乗っています。仮想ホストごとに異なるサーバー インスタンスが必要です。またはhttp.Serverですexpress app

元の を渡すappと、vhost に送信したリクエストが元のアプリに発行されます。そのため、vhost に元のサーバーで使用されていないパスがない限り、元のサーバーに要求が送信されたかのように応答が返されます。

接続ドキュメントから

connect()
  .use(connect.vhost('foo.com', fooApp))
  .use(connect.vhost('bar.com', barApp))
  .use(connect.vhost('*.com', mainApp))
于 2012-06-29T09:11:44.673 に答える