【发布时间】:2018-11-28 08:58:40
【问题描述】:
app.get('/images/:filename', (req, res, next) => {
console.log(req.params.filename);
const newUrl = `/static/images/${req.params.filename}`;
req.url = newUrl;
next();
});
如果filename 不包含特殊字符.,上述代码可以正常工作
例如localhost/images/myImage.jpg 将打印出myImage.jpg。
如果filename 包含.,例如localhost/images/my.Image.jpg,控制台将不会打印任何内容。有没有办法解决这个问题?
编辑:在下面添加代码。我不确定它的作用。
app.get(
/^.+\.(jpg|jpeg|gif|png|bmp|ico)$/,
(req, res) => {
res.status(404).end();
}
);
编辑 2:我的错!就像某人的评论一样,我发现问题实际上来自 Service Worker。这显然是在搞乱缓存。
有人能解释一下^.+\.$ 在上面第二段代码中的作用吗?我会为那个人标记答案。
【问题讨论】:
-
这不是真的。
:filename参数应该与myImage.jpg和my.Image.jpg一起使用。参数中的额外点不会影响它的工作方式。问题不在发布的代码中,也不应该影响console.log调用。请提供stackoverflow.com/help/mcve 以复制问题。
标签: javascript node.js express