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