Параметры, маршрутизация express

159
19 апреля 2021, 14:10

Задана обработка такого маршрута:

app.get('/users/:username', (req, res) => {
    let username = req.params.username;
    // ...
});

Всё работает, если никнейм username не содержит каких-то специальных символов. То есть при переходе по ссылке http://localhost/users/Don2Quixote в переменную username будет записано верное значение. Если же никнейм выглядит как-то так: new_user#0003, то часть "#0003" отбрасывается, в переменную username идёт только new_user.

Более того, если использовать req.originalUrl, вывод будет таким: /users/new_user; Смею предположить, нужно использовать URL Encode?

Что делать?

Answer 1

Всё, что следует после octothorpe (символ #), не отсылается на сервер (если речь про GET запрос). Оно доступно только на клиенте через window.location.hash, если речь про js.

Если у вас переменная содержит подобные спец.символы, то закодируйте с помощью чего-нить типо encodeURIComponent().

Или же передавайте их не через query.

READ ALSO
Изменение delay слайдера в процессе работы

Изменение delay слайдера в процессе работы

Есть два слайдера на страницеМне нужно сделать, чтобы разница между их переключением была в 5 секунд, поочередно

89
Как получить элементы из JSON Java Script?

Как получить элементы из JSON Java Script?

В Java Script не силёнПытаюсь достать из JSON объекта data элемент

92
Проверить домен на cross-origin policy

Проверить домен на cross-origin policy

Можете читать по выделенному тексту

96