1

私はnode.jsとWebプログラミング全般に少し慣れていないので、奇妙な質問をした場合は言い訳になります:D

これが、エクスプレスnode.jsプロジェクトを設定する方法です。
トラフィックをいくつかのサブドメインにリダイレクトするためのトップレベルのapp.jsがあります。

var app = module.exports = express.createServer(options);
app.use(express.vhost('blog.localhost', require('./apps/blog/blog.js')));
app.use(express.vhost('app1.localhost', require('./apps/app1/app1.js')));
app.use(express.vhost('login.localhost', require('./apps/login/login.js')));

require()を介して含まれている各サブアプリで、新しいExpressサーバーを返すだけです。

module.exports = express.createServer(options);

404ページを設定する最もエレガントな方法は何ですか?1つのアプリを使用していたときは、単に

app.use(function(req, res, next){
  res.render('404', {
  });
});

ただし、この方法を使用する場合は、アプリごとに404.jadeを作成する必要があり、コード内での無駄な重複は嫌いです。複数のvhost間で単一の404ロジックを共有する方法はありますか?

4

1 に答える 1

0

3 つのルート ファイルを必要とする 3 つのホストがあります。私の提案は、外部ファイルから、この 404 ルートごとに要求することです。この方法では、すべてのホストに 404 ルートを設定できますが、1 つの場所に存在するだけです。

例:

404 ルート ファイル - 404.js

module.exports = function (app, req, res, options) {
  app.get('/404', function(req, res, next) {
    res.render('404', { options: options });
  });
}

ホスト A のルート

// define other routes here
...
// you pass the app, req, res as params
// the last param is for local vars sent to the view
require('./routes/404.js')(app, req, res, { host: 'HostA' });
于 2012-01-05T09:51:06.477 に答える