vhost
エクスプレス/接続ミドルウェアを使用していますが、どのように使用すべきかについて少し混乱しています。サブドメインを持つホストには1組のルートを適用し、サブドメインを持たないホストには1セットのルートを適用したいと考えています。私app.jsファイルでvhostミドルウェアを使用してExpress内のサブドメイン別ルートを指定する
、私はdomain_routing.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);
、その後を持っている:
module.exports = function(subdomain){
var app = express.createServer();
require('./routes')(app, subdomain);
return app;
}
、その後routes.js
で、私はどうか、サブドメインの変数に依存して、ルートのセットを実行する予定渡されるのは"yes"
または"no"
です。
私は正しい軌道にいるのですか、これはこのミドルウェアの使い方ではありませんか?私は、2つのapp
サーバーインスタンスが作成されているという事実を少し混乱させています。代わりに元のapp
サーバインスタンスを渡して、サブドメインの代わりに別のルータを作成する代わりにそのインスタンスを使用するだけですか?
ありがとう!そして私の他の質問は、元のサーバーインスタンスに使用するミドルウェアを指定してから、別のサーバーインスタンスをvhostsに使用すると、元のサーバーに使用されていたミドルウェアが仮想ホストに引き継がれるのでしょうか?それとも、代わりに仮想マシン上でミドルウェアを排他的に使用するべきですか(元のサーバー上の仮想ホストミドルウェアを除く)基本的には、同じミドルウェアを明示的に使用する必要はなく、すべての可能な仮想ホストでミドルウェアを使用するシームレスな方法を探しています。一種の反復性のある仮想ホスト。 – user730569
いいえ、すべての仮想ホストでミドルウェアを排他的に使用する必要はありません。 vhostが '.use''dになる前に、すべてのアプリケーションに使用したいミドルウェアを' .use'にすることができます –
これは素晴らしいことです!しかし、好奇心から、それはどうやって働くのですか?私は、 'server.emit(" request "、req、res);というものが何の裏にあるのか少し混乱していると思います。 – user730569