node.jsフレームワークgeddy(Windows上)を試しているときに、少し問題が発生しました。
次のように、ユーザーモデルの.first()メソッドを使用して、コントローラーでmongodbにクエリを実行しようとしています。
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);
デフォルトのアダプターは、development.jsでmongoに設定されています。これは、初めて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;
また、mongoの私のコレクション(geddyによって作成されました)
> show collections
User
system.indexes
users
どういうわけか、geddyは1つではなく2つのコレクションを作成していることに注意してください