我正在尝试在我的Node应用程序中使用Express Ex和Express路由。我希望路线匹配路径'/'或'/index.html',但它匹配一切:(
这是我的路线。
app.get(/\/(index.html)?/, function(req, res){
res.set('Content-Type', 'text/plain');
res.send('Hello from node!');
});
如何让这个正则表达式起作用?
答案 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!');
});