Маршрутизатор
Чтобы получить "категорию" в качестве параметра url вместо параметров запроса , нам нужно изменитьсинтаксис немного
- Параметр запроса:
router.get('/someRoute')
.Затем назовите его с помощью GET /someRoute?city=paris
- URL-параметра:
router.get('/someRoute/:city')
.И мы называем это GET /someRoute/paris
Итак, в вашем случае, путь должен быть следующим:
app.get('/product-category/:city', (req, res) => {
// Handle the request here
const city = req.params.city;
});
Проблема %20
Вв случае Нью-Йорк вызов API включает пробел , который "кодируется" в %20
.Если вы хотите преобразовать это в дефис , вы можете использовать:
Объединение этих частей вместебудет выглядеть так
const cities = ['New York', 'New%20York', ' New york', '\tnew York'];
const format = s => s.toLowerCase()
.split(/\s|%20/)
.filter(Boolean)
.join('-');
const clean = cities.map(format);
console.log(clean);
Собираем все вместе
const format = s => s.toLowerCase()
.split(/\s|%20/)
.filter(Boolean)
.join('-');
app.get('/product-category/:city', (req, res) => {
// Get and format the "city" parameter
const city = format(req.params.city);
});