从nodejs中的请求路径获取其余路径

时间:2014-05-26 18:43:37

标签: javascript node.js express

你可以使用 express 从reuqested route获取node.js中的其余路径吗?

假设我的服务器位于8080端口,我只是访问http://example.com:8080/get/path/to/file

var url = require("url");
app.get("/get/*", function(req, res) {
  console.log(req.path);

  // this will return
  // '/get/path/to/file'

  console.log(url.parse(req.path);

  // this will return
  // protocol: null,
  // slashes: null,
  // auth: null,
  // host: null,
  // port: null,
  // hostname: null,
  // hash: null,
  // search: null,
  // query: null,
  // pathname: '/get/path/to/file',
  // path: '/get/path/to/file',
  // href: '/get/path/to/file' }
});

我想要的是返回path/to/file有没有办法解决这个问题?或者这可能是我的app.get()路线错了吗?

我知道有很多方法可以使用regexsplitsubstring以及使用普通JavaScript的许多其他方式来实现,但只是希望看到最好的方法

1 个答案:

答案 0 :(得分:3)

您可以在req.params中找到path/to/file

  

当正则表达式用于路径定义时,使用req.params [N]在阵列中提供捕获组,其中N是第n个捕获组。此规则适用于带有字符串路由的未命名的通配符匹配,例如/file/*

// GET /get/path/to/file
req.params[0]
// => path/to/file