快速路由“/”

时间:2015-01-06 17:19:52

标签: node.js express routes

在express中,在定义我的索引路由时,我使用“/”(有效),但是,我正在尝试使根可配置,所以我尝试了以下内容:

var root = ""; // can be whatever, but is sometimes empty
app.get(path.join(root, ""), ...);

当我启动服务器(并导航到'index')时,出现错误; “Cannot GET /”,但不是“/”是什么?他们有什么不同?

为什么"/"path.join("", "")不起作用时有效?

1 个答案:

答案 0 :(得分:0)

path.join("", "")返回.。所以它等同于app.get('.', ...);,它与/的请求不匹配。

您可以添加一个检查,以便root始终以前导斜杠开头:

var root = ""; // can be whatever, but is sometimes empty
if (root[0] !== '/')
  root = '/' + root;
app.get(path.join(root, ""), ...);

应该注意的一点是,当前path.join()将使用特定于平台的路径分隔符行为。因此,如果您使用的是Windows,/将转换为\。例如,path.join('/', '')将在Windows上返回\。虽然node v0.12可以跨平台方式访问特定于平台的路径方法(例如,您可以在Windows上访问* nix路径函数)。

相关问题