Почему мой [Op.or] работает только частично? - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь написать конечную точку для поиска пользователя с именем пользователя или идентификатором, совпадающим с переданной строкой. Ниже приведен текущий код, который я настроил для конечной точки на локальном хосте в ... / 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 используется на сервере.

...