你可以使用 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()
路线错了吗?
我知道有很多方法可以使用regex
,split
,substring
以及使用普通JavaScript的许多其他方式来实现,但只是希望看到最好的方法
答案 0 :(得分:3)
您可以在req.params
中找到path/to/file
:
当正则表达式用于路径定义时,使用req.params [N]在阵列中提供捕获组,其中N是第n个捕获组。此规则适用于带有字符串路由的未命名的通配符匹配,例如
/file/*
:
// GET /get/path/to/file
req.params[0]
// => path/to/file