问题描述
我在NodeJS应用程序中提供了指向外部网站的链接。这些需要大量的精力来寻找,我想跟踪点击次数。我更喜欢避免在浏览器中禁用前端JavaScript。到目前为止,我一直在使用查询参数,例如:
router.get('/redir',async (req,res) => {
let url = req.params.url;
// my own tracking logic
// ...
res.redirect(url);
});
对于已包含GET参数,问号和&符的链接,此代码将失败。我尝试了这个:
router.get('/redir/:url',res) => {
let url = req.params.url;
res.redirect(url);
});
并且甚至没有调用该路线。
如何跟踪已经包含?
和&?
的链接点击
解决方法
感谢评论,这是一种处理方法:
router.get('/redir',async (req,res) => {
let url = req.originalUrl.replace("/redir?url=","");
// logic
// ....
res.redirect(url);
});