когда вы делаете запрос на получение, вы в основном звоните
routes.get(/qrcode/http:/comp.co/32){...}
, поэтому маршрутизатор в бэкэнде понимает его как маршрут и не будет вызывать ожидаемый маршрут, т.е.
routes.get(/qrcode/:url){...}
Решение:
Url закодирует ваш URL как и попробуйте ваш код еще раз.
var link="http%3A%2F%2Fcomp.co%2F32"
res.render("tutorial.ejs", { qrcode: '/qrcode/'+ link });
<img src="<%= qrcode %>">
routes.get('/qrcode/:url',(req,res, next) => {
const code = qr.image(req.params.url, {type: 'svg'});
res.type('svg');
code.pipe(res);
})
Но лучший способ передать параметр - использовать запрос, чтобы избежать путаницы, выможет сделать это
res.render("tutorial.ejs", { qrcode: '/qrcode?url='+ link });
routes.get('/qrcode',(req,res, next) => {
const code = qr.image(req.query.url, {type: 'svg'});
res.type('svg');
code.pipe(res);
})
Надеюсь, это решит вашу проблему.