Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Node.js(Express.js + Sequelize.js ORM): Не получается выполнить правильный запрос (https://javascript.ru/forum/node-js-io-js/57974-node-js-express-js-sequelize-js-orm-ne-poluchaetsya-vypolnit-pravilnyjj-zapros.html)

femalemoustache 28.08.2015 16:25

Node.js(Express.js + Sequelize.js ORM): Не получается выполнить правильный запрос
 
Здравствуйте.

Я пишу приложение на основе 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 приходит, проверял.

Подскажите, что не так?


Часовой пояс GMT +3, время: 01:52.