Express.js - Filter a mongodb id in the URL

早过忘川 提交于 2019-12-02 00:53:23

问题


This question inspired by this post but in my case I need to filter MongoId. Is it possible to make filtering easily that the below because I need use it in each route?

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

回答1:


You're almost there, just don't add the ^ and $ anchors. And the uppercase A-F range isn't even necessary since Express seems to match case-insensitive:

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



回答2:


According to the Express API documentation, yes, you can use a regular expression as a path:

Regular expressions may also be used, and can be useful if you have very specific restraints.

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


来源:https://stackoverflow.com/questions/19186957/express-js-filter-a-mongodb-id-in-the-url

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!