快速路由“/”
在expression式中,当定义我的索引路由时,我使用“/”(这工作),但是,我试图使根可configuration,所以我尝试了以下:
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()
将使用特定于平台的path分隔符行为。 所以,如果你在Windows上, /
将被转换为\
。 例如, path.join('/', '')
将在Windows上返回\
。 虽然节点v0.12将能够以跨平台的方式访问特定于平台的path方法(例如,您可以访问Windows上的* nixpath函数)。