-2

これは、ドキュメントをmongodbに挿入するために使用しているコードです。

        var client = new Db('test', new Server("127.0.0.1", 27017, {}), {w: 1}),
        test = function (err, collection) {
        collection.insert({a:2}, function(err, docs) {

        collection.count(function(err, count) {
          test.assertEquals(1, count);
        });

        // Locate all the entries using find
        collection.find().toArray(function(err, results) {
          test.assertEquals(1, results.length);
          test.assertTrue(results[0].a === 2);

          // Let's close the db
          client.close();
        });
      });
    };

client.open(function(err, p_client) {
  client.collection('test_insert', test);
});

しかし、実行中にエラーが発生します

xports, require, module, __filename, __dirname) { var client = new Db('test', ^ ReferenceError: Db is not defined at Object. (C:\Users\Basic node\cheerio\mongonode.js:1:81)

at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)

この問題を解決する方法を教えてもらえますか

前もって感謝します

4

3 に答える 3

4

使用しているすべての必要なモジュールをインポートしてください。他のモジュールで定義されているか、宣言するのを忘れていることをDb is not defined指摘しています。Db

于 2013-03-11T18:34:22.670 に答える
3

この正確なコード ブロックが、さまざまなスタック オーバーフローの質問に投稿されていることに気付くでしょう。ここでの問題は、これが mongodb のドキュメントからコピー アンド ペーストされたコード ブロックであり、実際には mongodb nodejs プログラムの最初の例であることです。

https://npmjs.org/package/mongodb

これは「はじめに」の下に「ドキュメントを挿入する簡単な例」として表示されます。

これは明らかに不完全な例ですが、多くの人は、すべてが正しくインストールされているかどうかを確認するために試してみて、すぐに壁にぶち当たります。

ほとんどの人は mongodb ドライバーをインストールしていますが、次のようなものが上部にありません。

var mongodb = require('mongodb');
var Db = mongodb.Db;
var Server = mongodb.Server;

ここでもコピーアンドペーストの罠に陥り、「assertEquals」メソッドが存在しないという別の問題に遭遇しました。他の人がウェブ上の他の場所でその関数を参照しているのを見たことがありますが、それがどのように機能するかはよくわかりません.

いずれにせよ、それを機能させるには、 assert モジュールが必要でした:

var assert = require('assert');

次に、assertEquals の行を次のように置き換えました。

          assert.equal(1, count, "Unexpected result");

これを数回実行すると、問題が発生することに注意してください。そのテーブル内のものの数を数えることになり、1 つ以上になります。

正常に実行するには、mongo の CLI に入り、それらを削除する方法を理解する必要があります。

于 2013-06-24T20:34:53.650 に答える
0

mongodb ネイティブ ドライバーをインストールしてみてください

npm install mongodb
于 2013-06-12T06:51:18.490 に答える