2015-06-14 2 views
1
login: function (req, res) { 
     var username = req.param('username'); 
     var password = req.param('password'); 

     User.findOne({username: username}, function (err, user) { 
      if (err || !user) { 
       return res.status('401').send("User with username \"" + username + "\" not found. Are you registered?"); 
      } 
     ... 

дает мне undefined для user объекта, и я всегда в конечном итоге в отчете об ошибке. Значение переменной username имеет правильное значение. Метод, где я создаю записи, работает (так что мое соединение с БД в порядке), и когда я смотрю в БД, запись есть там со всеми правильными данными.findOne не получает никаких записей

Я также попытался User.find().where({username: username}).exec(function (err, user) { без успеха ...

Любые предложения о том, где я могу посмотреть в (отладки или) или чего-л, что может быть причиной этой проблемы?

+1

Сторона примечания: «Экспресс» ['req.param()'] (http://expressjs.com/4x/api.html#req.param) устарел и может быть удален в следующей версии. Вы должны ссылаться на ['req.params'] (http://expressjs.com/4x/api.html#req.params), [' req.query'] (http://expressjs.com/4x/api .html # req.query) и ['req.body'] (http://expressjs.com/4x/api.html#req.body). –

+1

Вы проверили 'err', предоставленный' .findOne() 'для любых возможных деталей (например,' console.error ('Error', err); ')? –

+0

@JonathanLonowski, проблема была в декларации модели. Ваш намек указал мне в правильном направлении. 'err' дает' Подробности: Ошибка: ER_BAD_FIELD_ERROR: Неизвестный столбец «users.passports» в «списке полей». Я отправлю ответ с объяснением, для помощи других людей. – Milkncookiez

ответ

1

Комментарий Джонатана для проверки err указал мне в правильном направлении. Моя User модели следующим образом:

attributes: { 
     // Relations 
     passports: { 
      model: 'Passport' 
     }, 
//... other attributes 

и у меня есть отношение belongsTo объявлено в Passport модели. The err постоянно давал Details: Error: ER_BAD_FIELD_ERROR: Unknown column 'users.passports' in 'field list', и, конечно, в моей таблице user в базе данных У меня не было passports.

Заключение: У меня было ненужное объявление отношения сущности в модели User. Это отлично работает с MongoDB, но, видимо, с MySQL все по-другому.

Смежные вопросы