0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Mongoose】つながらないMongoDB Node.js Driver の代わりに使ってみた

Last updated at Posted at 2024-09-11

概要

なぜかMongoDB Node.js Driverを使用したNode.jsからMongoDBへの接続ができなかったので、試行錯誤の末に、よくわからないままMongooseを使ったら接続成功した話です。
UbuntuもNode.jsもDBも初心者なので、間違いがあればご指摘いただけると嬉しいです。

状況

  • 接続が成功した場合はコンソールに「connected」というログを吐き、失敗した場合はエラーが出るはずだが、ログもエラーすらも表示されない
  • MongoDBの設定は基本デフォルトのまま、UFWはポート27017を許可
  • 確認のためLinuxのncコマンドを使用したところ、こちらでは接続が成功したのでモジュールとの相性が悪いのではと考察

実行環境

  • MacBook Pro 12,1 - Ubuntu 22.04.4 LTS
  • Node.js 20.11.1, npm 10.4.0
  • MongoDB Node.js Driver 6.3.0
  • Mongoose 8.1.3

問題のあるコード

index.js
const MongoClient = require("mongodb").MongoClient;
const assert = require("assert");

client = new MongoClient("mongodb://127.0.0.1:27017");
client.connect((error) => {
  assert.equal(null, error);
  console.log("connected");

  const db = client.db("test");
  client.close();
});

ちなみに、下記のようなMongoClientのインスタンスを作らず接続する方法も試しました。
https://qiita.com/one-kelvin/items/c0c036f774f0b3b98ae5

コンソール出力

$ node index.js

(何も表示されないので)

やけくそでMongooseを使ってみた

index.js
const mongoose = require("mongoose");

mongoose.connect("mongodb://127.0.0.1:27017/test").then(() => {
  console.log("connected");
  mongoose.disconnect();
});

コンソール出力

$ node index.js
connected

つながった!!

感想

Mongooseで接続が確認できた後、コレクションの操作などを試してみましたが無事成功しました。知識が足りないのもあって原因が皆目見当もつきませんが、とりあえずつながって良かったです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?