2013-05-10 50 views
0

我想在我的Node應用程序中使用Reg Ex與Express路由。我希望路由匹配路徑「/」或「/index.html」,而是它匹配一切:(Node js Express Framework - 正則表達式不工作

這裏是我的路線。

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

我怎樣才能得到這個正則表達式的工作?

回答

2

試試這個:

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

如果沒有$,則第一個/後面的內容仍然可以匹配,而index.html只是一個可選的前綴。沒有^,它也將匹配/something/index.html

+0

謝謝!這很好用! – 2013-05-10 08:35:13

1

傳遞一個正則表達式作爲字符串

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

這有效,那麼爲什麼這是低估? – 2013-05-10 07:57:13

+1

它也匹配'/ index.html /',因爲它是一種模式,而不是正則表達式(儘管我並不是那種低調的)。 – robertklep 2013-05-10 08:00:00

+0

這個答案也不錯:)有時候允許尾隨斜線很好。謝謝! – 2013-05-10 08:37:47