Странный мангуст. Я получаю дерьмо от документа findOne.

Вот как выглядит мой скрипт:

UserModel.findOne(
 {userId:'xx123456'},
  function(err, doc) {
   if (err) {
    next(err);
   } else if (! doc) {
    next( 'findOne: User not found. Input: ' + JSON.stringify(data)));
   } else {
    next(null, {status:true, 
     message:'User is found' ,
     data:doc
   });
  }
 }
);

Когда я запускаю модульный тест в командной строке, doc является документом mongo. например {userId: 'xx123456', имя: "Мое имя"}

Однако, когда я создаю веб-приложение, вызывающее эту функцию, передавая точно такой же идентификатор пользователя, doc.userId пуст. Однако я могу найти данные в doc._doc, почему это так?

У меня есть другой сайт, который обычно возвращает полный документ из «doc». Почему несоответствие...

Я должен сделать это, чтобы нормализовать данные: if (docs) docs = JSON.parse(JSON.stringify(docs));


person murvinlai    schedule 12.09.2011    source источник


Ответы (1)


Не совсем уверен, что происходит, но я бы сначала попробовал UserModel.find({}); Сделайте это, чтобы увидеть, что, если что, вернется. Если ничего не возвращается, у вас проблема.

Кроме того, одна проблема, которую я видел, заключается в том, что Mongoose чувствителен к регистру. Убедитесь, что «userId» не должен быть чем-то вроде «userid». Командная строка будет работать (насколько я видел) с неправильным регистром. Mongoose/Node не будет.

person Marshall    schedule 14.09.2011
comment
странно то, что я получаю данные. но не в doc, а в doc._doc - person murvinlai; 15.09.2011