0

app.router が解析される前に URL をオーバーライドしたい。

http://example.com/# {uid}/#{trueURI}のようなパスを挿入します

http://example.com/# {trueURI}にする必要があります

次のコードを使用します。

app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(cookieParser);
app.use(express.session());
app.use(function (req, res, next) {
    paths = req.path.split('/');
    paths.shift();
    req.session.uid = paths[0];
    paths.shift();
    req.path = "/" + paths.join('/');  // Cannot set this
    next();
});
app.use(express.static(path.join(__dirname, 'public')));
app.use(app.router);
app.use(require('stylus').middleware(__dirname + '/public'));

req.path にはゲッターしかありませんが、セッターは使用されていません。

では、express/connect フレームワークですべてのリクエストの URL を置き換えるにはどうすればよいでしょうか?

お読みいただきありがとうございます。

4

1 に答える 1

4

これはうまくいくようです:

app.use(function(req, res, next) {
  req.url = req.url.replace(/^\/.*?\//, '/');
  next();
});
于 2013-11-05T11:42:41.003 に答える