2016-07-29 169 views
0

我對Node.js和Express很陌生(對於一般的東西比較新)。在閱讀各種教程時,我很好奇爲什麼路徑中定義的路徑始終具有前導斜槓。你會有類似router.get('/sub_path', handler);的東西,將使用類似app.use('/parent', the_router);這樣的東西安裝,然後整個東西將被訪問到像http://localhost:3000/parent/sub_path之類的地方。我嘗試在get()use()的調用中省略了斜槓,並確保足夠的事情停止正常工作。快遞路線是以前導斜線定義的,是否有技術原因?

是否有技術上的原因,斜槓是必要的或者它只是一個任意的設計決定(也許是爲了一致性或清晰度或什麼)?我沒有在服務器上看到任何錯誤,所以有可能是缺少斜線實際上有用的情況?

+0

我懷疑會有一個「技術」的原因,因爲它無足輕重地使快速連接路徑片段正確(請參閱nodejs API中的'path.join()')。原因可能是或多或少強化語義模式。 –

回答

3

那麼,當你有一個像http://www.somedomain.com/somepath這樣的URL時,該URL中的路徑是/somepath。這不是somepath。這是/somepath。因此,如果您想將上述網址與路線相匹配,則需要匹配/somepath

我認爲Express有可能「假設」每一個路由字符串在它的前面有一個隱含的"/",並且不會讓你鍵入它,但它會有點誤導。您要求匹配的路線以/開頭。

您可以使用正則表達式來匹配路線,但這是唯一的情況,我已經看到您不使用領先的/

有關設計/編寫代碼時實際開發人員動機的進一步討論,您必須詢問實際編寫Express的人員。不是我們可以在這裏說的東西。

相關問題