В настоящее время я работаю над приложением URL shortener, используя Express. Я хочу, чтобы пользователь мог ввести URL, как это:Работа с символами косой черты в параметре запроса с использованием экспресс-маршрута
https://www.exampleurlshortener.com/new/https://www.google.com
Проблема заключается в том, когда я пытаюсь указать параметр, используя Экспресс это будет только извлечь «https:» раздел и все после этого теряется потому что 2 обратных слеш регистрация в качестве нового маршрута:
app.get('/new/:url', (req, res) => {
console.log(req.params.url) // outputs 'https:'
Я думал об указании каждой секции в качестве нового параметра, но если inner
пустое это заканчивается бросать 404. мне нужно проверить, если внутреннее пустая, используя этот метод в противном случае пользователь мог бы ввести https:/something/www.google.com
app.get('/new/:prot/:inner/:address', (req, res) => {
// throws 404 on valid addresses
Есть ли простой способ решить эту проблему, которую мне не хватает? Можно ли проверить полный URL-адрес в запросе? Или параметры могут игнорировать обратную косую черту?
Попробуйте использовать 'req.url' или передать параметр через строку запроса (я рекомендовал бы этот 2-й подход, он также будет проще клиенты вашего API) – slezica