[解決済み] MongoClient v3.0使用時、db.collectionが関数でない
2022-01-30 08:11:43
質問
を試しています。 W3schoolsチュートリアル nodeJSとMongoDBについて。
この例をnodeJS環境で実装し、AJAXコールで関数を呼び出そうとすると、以下のようなエラーが発生します。
TypeError: db.collection is not a function
at c:\Users\user\Desktop\Web Project\WebService.JS:79:14
at args.push (c:\Users\user\node_modules\mongodb\lib\utils.js:431:72)
at c:\Users\user\node_modules\mongodb\lib\mongo_client.js:254:5
at connectCallback (c:\Users\user\node_modules\mongodb\lib\mongo_client.js:933:5)
at c:\Users\user\node_modules\mongodb\lib\mongo_client.js:794:11
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickCallback (internal/process/next_tick.js:104:9)
以下は、私が実装したコードです。
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mytestingdb";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
db.collection("customers").findOne({}, function(err, result) {
if (err) throw err;
console.log(result.name);
db.close();
});
});
実行がヒットするたびにエラーが発生することに注意してください。
db.collection("customers").findOne({}, function(err, result) {}
また、(一応)node JS用の最新のMongoDBパッケージをインストールしたことに注意してください( npm インストール mongodb ) で、MongoDB のバージョンは MongoDB Enterprise 3.4.4 で、MongoDB Node.js ドライバーは v3.0.0-rc0 です。
どのように解決するのですか?
私も同じことに遭遇しました。package.json の mongodb の行を "mongodb": "^2.2.33" に変更します。MongoDB Driver/ node_modules 等を削除して mongodb npm をアンインストールしてから npm をインストールすると、このバージョンがインストールされます。
これで私の場合、問題は解決しました。バグかドキュメントを更新する必要があるようです。
関連
-
[解決済み】AWS Lambdaでnodejsの「ref」モジュールを使用すると「invalid ELF header」と表示される件
-
[解決済み】passport.js passport.initialize() ミドルウェアが使用されていません。
-
[解決済み】NPMインストールエラー:解析中の予期せぬJSON入力の終了 '...nt-webpack-plugin": "0'' 付近。
-
[解決済み】E11000重複キーエラー mongodb mongooseのインデックス
-
[解決済み】AWS lambda function エラー - モジュール 'index' をインポートできません。エラー
-
[解決済み】POSTできない/expressを使用するとエラーが発生する
-
[解決済み] Expectアサーションの型エラー -> expect(...).toExistは関数ではない
-
[解決済み] Passport JSのreq.isAuthenticated()はどのように実装されていますか?[クローズド]
-
[解決済み] エラーです。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりません。
-
[解決済み] エラー: ノード出力を "|head" にパイプするときに EPIPE を書き込む。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Nodejs: Errorを解決する方法。ENOENT: そのようなファイルまたはディレクトリがありません
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み】NPMインストールエラー:解析中の予期せぬJSON入力の終了 '...nt-webpack-plugin": "0'' 付近。
-
[解決済み] のエラーが発生しました。これはおそらくnpmの問題ではありません。上に追加のログ出力があると思われます
-
[解決済み] Expectアサーションの型エラー -> expect(...).toExistは関数ではない
-
[解決済み] TypeError: コールバックはnodejsの関数ではありません。
-
[解決済み] Node.jsで「btoaが定義されていない」エラーが発生する
-
[解決済み] ReferenceError: describe は定義されていません NodeJs
-
[解決済み] "致命的なエラーです。grunt "コマンドを実行すると、"Unable to find local grunt. "と表示されます。
-
[解決済み] Node.jsのWebアプリケーションでMongoDBの接続を管理するにはどうすればよいですか?