У меня есть такой объект, который содержит строковое имя с пробелами:
{
xxx: "/xxx/",
name: "string with spaces",
items: {
method: "GET",
}
}
Я ищу в своем запросе имя для получения объекта предмета, например:
http://localhost:3000?$name=test
Но как мне теперь искать строку с такими пробелами, как это:
http://localhost:3000?$name=string with spaces
Вот процесс работы вещей:
если я не укажу имя в запросе, подобное этому http://localhost:3000?$name=
, я получу следующее:
[
{
name: "admin",
item: [xxx]
},
{
name: "auth",
item: [xxx]
}
]
Если я укажу, например, объект с именем admin
, например: http://localhost:3000?$name=admin
, тогда я получу следующее:
[
{
name: "manage users",
items: {}
},
{
name: "Get user`",
items: {}
}
]
Теперь я пытаюсь добавить в запрос имя с такими пробелами, как это: http://localhost:3000?$name=admin/manage users
, чтобы я также мог получить его элементы.
Когда я попробую следующий код:
const { $name } = req.query;
const name = $name.split('/');
let currentItem = req.doc;
name.forEach((name) => {
const decoded = decodeURIComponent(name);
currentItem.forEach((entry) => {
if (entry.name === decoded) {
currentItem = entry.item;
}
});
});
Все работает нормально, если нет пробелов, но как только я ищу что-то с пробелами, тогда i get undefined for the entry.item
, но как только я утешаю вход в систему, я получаю расшифрованное введенное имя.