0

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つのコレクションを作成していることに注意してください

4

1 に答える 1

1

このバグに見舞われているようです:https ://github.com/mde/geddy/issues/240

現状では、Geddyはモデルごとに誤って2つのコレクションを作成しています。ただし、読み取り/書き込みを行うには、常に小文字の複数形コレクションを使用します。データがそのコレクションにあり、他のコレクションにはないことを確認しますか?

とにかく、コメントから、これはすでにカバーされているようです。

于 2012-10-22T21:44:15.167 に答える