1

私は次のものを持っていますapp.js

app.use(express.static(path.join(__dirname, 'public')));
app.use(function(req, res, next) {
    console.log('app.use');
    ...
    next();
});

app.use(app.router);

publicフォルダには、サブフォルダimagescssおよびがありますjs

の後app.use(app.router);、Amazon S3 から画像を返すためのルート定義があります。

app.get('/images/:type/:id', image);

問題は、ページに画像app.useが含まれている場合に 2 回呼び出されることです。それを防ぐ方法は?/images/*電話を無視したいapp.use(function(req, res, next) {});

4

1 に答える 1

2

通常、Express はミドルウェア接続アーキテクチャを使用します。すべてのミドルウェアは、呼び出された場合にフローを次のミドルウェアに渡す次の関数を受け入れます。したがって、理論的には、それを見逃すと、必要なものをアーカイブできます。

app.use(function(req, res, next) {
    // check if the route matches amazon file
    if(...amazon file...) {
       // serve image
    } else {
       next();
    }
});
app.use(express.static(path.join(__dirname, 'public')));
于 2013-09-09T08:53:32.087 に答える