快速路由“/”

在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函数)。