Есть приложение на основе Express. База данных - postgresql, ORM - Sequelize. Это обработчик POST-запроса, в котором мне нужно получить пользователя из базы по username.
// /routes/login.js
router.post('/', function(req, res, next) {
models.User.findAll({
where: {
username:req.body.username
}
}).then(function(user) {
console.log(user);
});
res.render('login');
});
В командной строке выводится текст запроса и результат(пустой массив):
Executing (default): SELECT "id", "username", "password" FROM "Users" AS "User" WHERE "User"."username" = 'admin';
[]
Хотя такой пользователь есть, проверяю с помощью psql запросом
SELECT id, username, password FROM Users WHERE username = 'admin';
Пробовал то же самое с помощью .findOne():
router.post('/', function(req, res, next) {
models.User.findOne({
username: req.body.username
}).then(function(user) {
console.log(user);
});
res.render('login');
});
Лог запроса:
Executing (default): SELECT "id", "username", "password" FROM "Users" AS "User" LIMIT 1;
null
Т.е. .findOne() при формировании запроса проигнорировал аргумент { username:req.body.username }. Поле req.body.username приходит, проверял.
Подскажите, что не так?