Запрос mongodb с Geddy

При попытке попробовать geddy (на windows) фреймворка node.js, я столкнулся с небольшой проблемой.

Я пытаюсь запросить mongodb в моем контроллере, используя метод.first() из моей модели пользователей следующим образом:

geddy.model.User.first({name: 'jdoe'}, function (err, data) {
  if (err) {
    throw err;
  } else {
    console.log(data);
  }

});

Как ни странно, я не получаю никакого вывода, ошибки, ничего. Пользователь jdoe существует в коллекции, поэтому он должен что-то выводить, верно? Я делаю что-то неправильно?

Моя модель определяется как:

var User = function () {

    this.defineProperties({
      username: {type: 'string', required: true},
      password: {type: 'string', required: true},
    });

    this.autoIncrementId = true;

};

User = geddy.model.register('User', User);

Адаптер по умолчанию установлен в mongo в development.js, когда я впервые запустил geddy, он создал мою базу данных и правильно вставил коллекцию Users.

Есть идеи, что здесь происходит не так?

ОБНОВИТЬ:

добавлен файл development.js по запросу

var config = {
  detailedErrors: true
, debug: true
, hostname: null
, port: 4000
, model: {
    defaultAdapter: 'mongo',
    }
,db: {
    mongo: {
        dbname: 'knowledgebase'
    }
}
, sessions: {
    store: 'memory'
  , key: 'sid'
  , expiry: 14 * 24 * 60 * 60
  }
};

module.exports = config;

также мои коллекции на монго (созданные Гедди)

> show collections
User
system.indexes
users

обратите внимание, что Гедди как-то создает две коллекции вместо одной

1 ответ

Решение

Похоже, что вы попали в эту ошибку: https://github.com/mde/geddy/issues/240

На самом деле, Гедди случайно создает две коллекции для каждой модели. Тем не менее, он всегда использует множественную коллекцию в нижнем регистре для чтения / записи. Вы уверены, что ваши данные были в этой коллекции, а не в другой?

Во всяком случае, из комментариев кажется, что вы уже рассмотрели этот вопрос.

Другие вопросы по тегам