Node js Express Framework - 正则表达式无效

时间:2013-05-10 07:51:45

标签: regex node.js express

我正在尝试在我的Node应用程序中使用Express Ex和Express路由。我希望路线匹配路径'/'或'/index.html',但它匹配一切:(

这是我的路线。

app.get(/\/(index.html)?/, function(req, res){
    res.set('Content-Type', 'text/plain');
    res.send('Hello from node!');
});

如何让这个正则表达式起作用?

2 个答案:

答案 0 :(得分:3)

试试这个:

app.get(/^\/(index\.html)?$/, function(req, res){
  res.set('Content-Type', 'text/plain');
  res.send('Hello from node!');
});

如果没有$,第一个/后面的任何内容仍然可以匹配,而index.html只是一个可选前缀。如果没有^,它也会匹配/something/index.html

答案 1 :(得分:1)

将正则表达式作为字符串传递。

app.get('/(index\.html)?', function(req, res){
    res.set('Content-Type', 'text/plain');
    res.send('Hello from node!');
});