我有我的快递应用程序的路线,看起来像这样:
app.get('/:id', function (request, response) {
…
});
该ID将永远是一个数字。 然而,目前这条线路匹配其他的东西,如/login
。
我想,我想从这两个方面:
- 仅使用该路由如果ID是一个数字,并
- 仅当不存在用于已定义(诸如与冲突特定paramater的路由
/login
)。
可以这样做?
我有我的快递应用程序的路线,看起来像这样:
app.get('/:id', function (request, response) {
…
});
该ID将永远是一个数字。 然而,目前这条线路匹配其他的东西,如/login
。
我想,我想从这两个方面:
/login
)。 可以这样做?
扩大马吕斯的回答,您可以提供正则表达式和参数名:
app.get('/:id(\\d+)/', function (req, res){
// req.params.id is now defined here for you
});
是的,检查出http://expressjs.com/guide/routing.html和https://www.npmjs.com/package/path-to-regexp (其表达用途)。 可工作的未经测试的版本是:
app.get(/^(\d+)$/, function (request, response) {
var id = request.params[0];
...
});
您可以使用:
// /12345
app.get(/\/([^\/]+)\/?/, function(req, res){
var id = req.params[0];
// do something
});
或这个:
// /post/12345
app.get(/\/post\/([^\/]+)\/?/, function(req, res){
var id = req.params[0];
// do something
});