正则表达式帮助 - Express 路由 url

标签 regex node.js express routes

我从其他 Stack Overflow 帖子中了解到,您可以使用正则表达式来路由各种 URL。我以前从未真正使用过 RegExp,所以我需要一些帮助。我将如何路由所有以/lobby/开头后跟十位数字的 URL?像这样

app.get("/lobby/0000000000", function (req, res) ...

谢谢。

最佳答案

这是一个工作示例:

app.get(/^\/lobby\/[0-9]{10}$/, function(req, res) {
  // route handler here
});

或者,您可以使用参数检查:

app.param(function(name, fn){
  if (fn instanceof RegExp) {
    return function(req, res, next, val){
      var captures;
      if (captures = fn.exec(String(val))) {
        req.params[name] = captures;
        next();
      } else {
        next('route');
      }
    }
  }
});

app.param('id', /^[0-9]{10}$/);
app.get('/lobby/:id', function(req, res){
  res.send('user ' + req.params.id);
});

关于正则表达式帮助 - Express 路由 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19367138/

相关文章:

node.js - Alexa 自定义技能 - 内部调用其他技能的处理程序

node.js - 本地安装 JSBin

node.js - 在 Node.js/Waterline 中指定返回字段?

mysql - 在mysql中使用正则表达式匹配精确的数字

Python RegEx - 单行与多行测试

javascript - express v4 : How do I run route-specific middleware before param middleware?

javascript - 使用Express服务器来控制nodejs应用程序

javascript - 如何在 Node.js 中创建 Get 请求以从 json 获取特定对象?

regex - sed 在字符串和最后一次出现的字符之间搜索和替换

excel - Excel VBA 正则表达式模式中的定界符,过滤某些内容但不过滤其他内容