[英]Express Routing “/”
明確地說,在定義索引路由時,我使用“ /”(有效),但是,我試圖使根目錄可配置,因此嘗試了以下操作:
var root = ""; // can be whatever, but is sometimes empty
app.get(path.join(root, ""), ...);
當我啟動服務器(並導航到“索引”)時,出現錯誤; “ Cannot GET /
”,但這不是“ /”是什么嗎? 它們有何不同?
當path.join("", "")
不起作用時,為什么"/"
有效?
path.join("", "")
返回.
。 因此,這等效於執行app.get('.', ...);
與/
請求不匹配。
您可以添加一個檢查,以使根始終以前導斜杠開頭:
var root = ""; // can be whatever, but is sometimes empty
if (root[0] !== '/')
root = '/' + root;
app.get(path.join(root, ""), ...);
應該注意的一件事是當前path.join()
將使用特定於平台的路徑定界符行為。 因此,如果您使用的是Windows,則/
將轉換為\\
。 例如,在Windows上, path.join('/', '')
將返回\\
。 盡管節點v0.12可以跨平台訪問特定於平台的路徑方法(例如,您可以在Windows上訪問* nix路徑函數)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.