我希望在对 url 执行任何路由之前获取 Node (使用 Express 进行路由)来解析 url 中出现的所有 ../
符号。
例如,如果在 url /a/b/../c/d/e/../../f
处查询 apache,它将首先解析所有 ../
符号,最终将提供位于 /a/c/f
的任何内容。
但是,使用node+express,/a/b/../c/d/e/../../f
按字面意思理解,并且不会匹配的路由/a/c/f
。我的问题是以下代码不会响应像 /a/b/../c/d/e/../../f
这样的请求:
app.get('/a/c/f', function(req, res) {
return res.status(200).json({ msg: 'it worked!' });
});
如何让node+express解析url中的../
符号?
最佳答案
您可以使用路径模块来连接 URL 段:
const path = require("path");
app.use(function(req, res, next) {
const pathArr = req.url.split("/");
req.url = path.join.apply(null, pathArr);
next();
});
将其重新分配给网址将允许任何后续的快速匹配器继续处理它,而无需手动控制提供任何内容。
关于node.js - Node ,express,处理url中的 ".."符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43616158/