Я пытаюсь написать конечную точку для поиска пользователя с именем пользователя или идентификатором, совпадающим с переданной строкой. Ниже приведен текущий код, который я настроил для конечной точки на локальном хосте в ... / api / users /: search.
//GET user by id or password
router.get('/:search', (req, res, next) => {
User.findOne({
where: {
[Op.or]: [
{
id : { [Op.eq]: req.params.search }
},
{
username : { [Op.eq] : req.params.search }
}
]
}
}).then(data => {
res.json(data)
}).catch(next)
});
Я полагаю, что все настроил правильно, но я могу получить ответ, только когда передам существующий идентификатор. Пример: у меня есть пользователь с идентификатором "1" и именем пользователя "hyena12". Если я сделаю GET для ... / api / users / 1, он вернет пользователя. Но если я сделаю GET на ... / api / users / hyena12, ответ просто скажет "ошибка".
Я использую Sequelize с Node и использую PostMan, чтобы попытаться проверить это. Postgres DB используется на сервере.