0

db.collection('collection-name').find()aを mongooseに翻訳するために約 3 時間試行しましたが、 find().

スタックトレース:

Error: unauthorized db:parks ns:parks.parkpoints lock type:0 client:127.2.132.1
at Promise.error (/var/lib/user/app-root/runtime/repo/node_modules/mongoose/lib/promise.js:88:38)
at cb (/var/lib/user/app-root/runtime/repo/node_modules/mongoose/lib/query.js:1454:29)
at /var/lib/user/app-root/runtime/repo/node_modules/mongoose/lib/utils.js:408:16
at /var/lib/user/app-root/runtime/repo/node_modules/mongodb/lib/mongodb/cursor.js:146:30
at /var/lib/user/app-root/runtime/repo/node_modules/mongodb/lib/mongodb/cursor.js:188:32
at /var/lib/user/app-root/runtime/repo/node_modules/mongodb/lib/mongodb/cursor.js:504:39
at Cursor.close (/var/lib/user/app-root/runtime/repo/node_modules/mongodb/lib/mongodb/cursor.js:776:5)
at [object Object].<anonymous> (/var/lib/user/app-root/runtime/repo/node_modules/mongodb/lib/mongodb/cursor.js:504:21)
at [object Object].g (events.js:156:14)
at [object Object].emit (events.js:88:20)
npm info Sample-App@1.0.0 Failed to exec start script

Connection.once('open')イベントがヒットしたので、接続に問題はないはずですが、 でエラーが発生し続けますconsole.log("find() error");

誰が何が起こっているのか手がかりを持っていますか?

  • データベース名:公園
  • コレクション名:パークポイント
  • マングースのバージョン: 3.3.1
  • Mongodb バージョン: 2.2.0

ユーザー、パス、ホスト、およびポートの値を再確認しましたが、これらは問題の原因ではありません。

self.connectDb = function(callback){
mongoose.connection.on('error', function(err){
  console.log("connection error");
  throw err;});
mongoose.connection.once('open', function(){
  callback();
  self.Parkpoint=mongoose.connection.model('Parkpoint', 
           new Schema({ Name: String, pos: [Number]})); 

  self.Parkpoint.find().exec(function(err, names) {
    if(err){
      console.log("find() error");
      throw err};
     console.log("names: "+names);
    res.header("Content-Type:","application/json");
    res.end(JSON.stringify(names));
});


});

var dbUri = 'mongodb://'+self.dbUser+':'+self.dbPass+'@'+self.dbHost+':'+self.dbPort+'/parks';
console.log(dbUri);
mongoose.connect(self.dbHost, "parks", self.dbPort, {user:self.dbUser, pass:self.dbPass});
};
4

1 に答える 1

0

解決済み:データベースの認証を追加するには、addUser()コマンドを実行する必要があります。mongodbドライバーが機能したので機能していると思いましたが、どうやらそのユーザーは実際には追加されなかったようです...おそらくそれは管理者だからです。根本的な原因はまだはっきりしていませんが、認証管理にもっと注意を払えば問題は簡単に解決できるようです。

于 2012-11-07T23:26:57.413 に答える