2017-04-03 159 views
0

因爲我正在使用react路由器,所以無法在節點中響應每條單一路由的特定文件路徑引用。爲了讓他們在獲得特定文件路徑時不會崩潰,我必須將此代碼放在節點中。正則表達式獲取文件路徑

app.use(express.static(path.join(__dirname, '/frontend-two'))); 

app.get('*', function(req,res) { 
res.sendFile(path.join(__dirname, './frontend-two/index.html')); 
}); 

但是,我確實想要放置一個特定的文件路徑,以便將json數據發送回客戶端。它會干擾app.get('*'),除非我能找出具體的'/用戶'被排除在外的正則表達式。

有沒有人可能知道一個可能的正則表達式來完成這個任務?我嘗試過其他問題的想法,但無法弄清楚。

+0

在通配符之前設置您的特定文件路徑,以便它首先被捕獲。 – Dez

回答

1

你可以做到這一點有兩種方式:

您可以添加/用戶的路徑,然後*路徑:

app.get('/get', function (req, res) { 
    // ... 
}); 

app.get('*', function (req, res) { 
    // ... 
}); 

第一個匹配將被使用,因此*路徑將不匹配/users因爲它是第二個。

或者你可以使用這樣的正則表達式:/^(?!\/users)$/匹配一切,但不是用戶。有很多方法可以組成正則表達式 - 搜索負面預讀和隱藏斷言。

+0

我沒想過在通配符路徑之前設置特定路徑。非常感謝您的回覆。 –