我嘗試使用Express框架在Node JS中設置路由時出現問題。Node.js - 在路由中表示特殊字符(/campañas)
我的路線是這樣的一個:
app.get('/campaña/nueva', sms.nueva);
,但我不能得到它的工作,因爲邪惡的「N」(其與「N」壽作品)
我用笨的一段時間,你可以設置你想要啓用或禁用哪些字符 你們知道任何workarround或在節點中啓用它的方法嗎?
我嘗試使用Express框架在Node JS中設置路由時出現問題。Node.js - 在路由中表示特殊字符(/campañas)
我的路線是這樣的一個:
app.get('/campaña/nueva', sms.nueva);
,但我不能得到它的工作,因爲邪惡的「N」(其與「N」壽作品)
我用笨的一段時間,你可以設置你想要啓用或禁用哪些字符 你們知道任何workarround或在節點中啓用它的方法嗎?
我想你需要同時處理一個URL編碼和UTF-8(也可能是拉丁-1)變體。請檢查以下內容:
您的客戶(瀏覽器)如何發送URL?
%C3%B1
?
%C3%B1
編碼curl
進行了測試,它看起來會發送一個單一字符,我認爲它是從我的終端獲得的任何編碼,可能是UTF-8。此基礎上,嘗試調整你的路線。您可以使用正則表達式或明確列表
。
app.get('/campaña/nueva', sms.nueva)
app.get('/campa%c3%b1a/nueva', sms.nueva)
//Or for convenience if you like
app.get('/' + encodeURIComponent('campaña') + '/nueva', sms.nueva)
我的猜測是最終大多數瀏覽器將發送URL編碼的版本,所以你也許可以與僅僅是最後一個版本度日。
我在路線中遇到$
的問題。 URL編碼的字符在我的情況下不起作用,但是逃脫了一個作品。
所以我結束了
app.get('/\\$myRoute', function (req, res) {
}
你可以URI編碼N轉換%C3%B1 – user1937198 2013-03-09 16:54:42