这个问题受到这篇文章的启发,但在我的情况下,我需要过滤 MongoId。是否可以轻松地进行以下过滤,因为我需要在每条路线中使用它?
app.post('/:mongoId(^[0-9a-fA-F]{24}$)', function(req, res){
// Send query based on mongoId
}
你快到了,只是不要添加^
和$
锚点。甚至不需要大写A-F
范围,因为 Express 似乎匹配不区分大小写:
app.post('/:mongoId([0-9a-f]{24})', function(req, res){
var id = req.param('mongoId');
...
});
根据Express API 文档,是的,您可以使用正则表达式作为路径:
也可以使用正则表达式,如果您有非常具体的限制,它会很有用。
app.get(/^\/commits\/(\w+)(?:\.\.(\w+))?$/, function(req, res){
var from = req.params[0];
var to = req.params[1] || 'HEAD';
res.send('commit range ' + from + '..' + to);
});