当前位置: 首页 > 知识库问答 >
问题:

表达式正则表达式字符串表示法

林君博
2023-03-14

我不熟悉Javascript和正则表达式,所以我一直在研究如何使路由匹配所有以/user/…开头的URL

我可以做应用程序。get(/user/,函数(req,req){/*stuff*/})

但我想知道,如果我用一个字符串代替regex对象,我怎么能做到这一点。例如

app.get("/user/:id", function(req,req){ /*stuff*/});  

只匹配具有"user"和一个参数的urls。我将如何编码它,以便它匹配"user"和N个参数

使用字符串或文字javascript正则表达式对象有什么区别?我发现,即使在字符串符号中,我也可以这样做。。。

app.get("/user/:d([a-z]*)", function (req, res) {

    //more stuff
});

共有1个答案

屠盛
2023-03-14

我不确定有什么方法可以传递一条路由N参数。不过,您可以选择以下几种不同的路线:

var userController = requrie('./user_controller'),
  isAuthenticated = require('./middleware/is_authenticated');

app.get("/user/:id/address/:addressId", userController.addressById);
app.get("/user/:id/address", userController.address);
app.get("/user/:id", userController.index);

为了在执行控制器操作之前检查身份验证之类的内容,您可以使用中间件进行检查,并将其作为控制器操作之前的第二个参数,如下所示:

app.get("/user/:id", isAuthenticated, userController.index);

在上面的示例中,您的user_controller.js看起来像这样:

module.exports = {
  index: function(req, res) {
    // index action logic
  },
  address: function(req, res) {
    // address action logic
  },
  addressById: function(req, res) {
    // addressById action logic
  }
};

这将允许您将类似但不同的路由传递给不同的控制器操作,这将使您对如何排序不同的路由有更多的控制,因为这是路由器的工作,而不是控制器的工作。

还有一点需要注意的是,路线的顺序很重要。通常最好将一组路由中的更特定的路由放在第一位,而更通用的路由放在最后。

希望有帮助!

 类似资料:
  • 我有一个包含数千行的文本文件。这里有一个例子 我试图提取'nt60'、'nt50'末尾的字符串。 问题是会包含行尾字符() 我想使用正则表达式搜索来匹配从 (') 开始的字符串,但我不知道我应该用什么来匹配 。 有人能帮忙吗?

  • 我在一个多语言网站上工作,并已选择使用每种语言的自定义URL,例如: 两者都指向城市控制员的指数方法。 在每个页面上都有一个切换语言的选项,它会在我的路由中查找以匹配控制器、视图和语言。 因此,如果我在荷兰语页面上,它会找到英文版的正确网址,即“城市”而不是“steden”。 在我开始使用更复杂的正则表达式之前,一切都很好。 我有这些正则表达式,它们将匹配我所需的URL: 在我的代码中,我可以访问

  • 我有一根下面这样的弦 现在我希望我的程序验证我的输入是否与字符串“phone”的模式相同 我做了以下工作 没奏效。我也尝试了其他的组合。什么都不起作用。 问题:1。我怎样才能做到这一点,而不使用‘模式’像上面?2.如何用图案做到这一点。我尝试了如下模式 Pattern Pattern=Pattern.compile(“(\d+)”);Matcher match=pattern.Matcher(电话

  • 相比较于第一章变量的声明,这一章的内容有了一点深度提升,但还不至于很难理解。本章主要讲2个知识点,字符串、正则表达式 字符串 字符串(String)是JavaScript6大原始数据类型。其他几个分别是Boolean、Null、Undefined、Number、Symbol(es6新增)。 字符串类型在前端开发者,是使用最频繁的类型之一,网站上可见的各种文案,几乎都是字符串类型的数据。我们经常需要

  • 字符串可以说是程序设计中最为重要的数据类型之一。几乎每种高级编程语言都有它的一席之地,而且能有效的使用它也是开发者编写实用程序的基本准则。作为重要的扩展,正则表达式赋予开发者操作字符串的额外能力。ECMAScript 6 的缔造者们将这些事实牢记于心,改进了字符串和正则表达式,并添加了长久以来缺失的某些功能。本章会讲解它们的变化之处。 译者注: gitbook 无法正常解析 $$ 字符,所以在模板

  • 主要内容:实例下表包含了元字符的完整列表以及它们在正则表达式上下文中的行为: 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或