【发布时间】:2011-09-03 22:20:00
【问题描述】:
我试图让一条路线覆盖/foo 下的所有内容,包括/foo 本身。我试过使用/foo*,它适用于所有除了它不匹配/foo。观察:
var express = require("express"),
app = express.createServer();
app.get("/foo*", function(req, res, next){
res.write("Foo*\n");
next();
});
app.get("/foo", function(req, res){
res.end("Foo\n");
});
app.get("/foo/bar", function(req, res){
res.end("Foo Bar\n");
});
app.listen(3000);
输出:
$ curl localhost:3000/foo
Foo
$ curl localhost:3000/foo/bar
Foo*
Foo Bar
我有哪些选择?我想出的最好的方法是路由/fo*,这当然不是很理想,因为它会匹配太多。
【问题讨论】:
-
如果你拦截了所有
/foo*这样的路由,你不想让它成为中间件吗? -
小心你的要求:
/foo*匹配/foo/bar,但也匹配/foolish,这可能不是你想要的。