2013-10-04 1 views
2

Этот вопрос вдохновлен this post, но в моем случае мне нужно отфильтровать MongoId. Можно ли легко фильтровать, что ниже, потому что мне нужно использовать его в каждом маршруте?Express.js - Отфильтровать идентификатор mongodb в URL-адресе

app.post('/:mongoId(^[0-9a-fA-F]{24}$)', function(req, res){ 
    // Send query based on mongoId 
} 

ответ

6

Вы почти там, просто не добавить ^ и $ якоря. И диапазон прописных A-F даже нет необходимости, так как Экспресс, кажется, соответствует нечувствительна к регистру:

app.post('/:mongoId([0-9a-f]{24})', function(req, res){ 
    var id = req.param('mongoId'); 
    ... 
}); 
+0

Спасибо. Это то, что мне нужно !!!! – Erik

1

Согласно Express API documentation, да, вы можете использовать регулярные выражения в качестве пути: можно также использовать

Регулярные выражения, и может быть полезно, если у вас есть очень специфические ограничения.

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); 
}); 
+0

Спасибо за ответ, но как я могу построить регулярное выражение для проверки MongoDB идентификатора? – Erik

+0

Какое точное выражение вы пытаетесь настроить? Вы всегда можете попробовать свои регулярные выражения, чтобы убедиться, что они захватывают то, что вам нужно на http://regexpal.com/ –

+0

Это работает, но я думал, что лучше – Erik

 Смежные вопросы

  • Нет связанных вопросов^_^