私は mongodb パッケージを使用して NodeJS を MongoDB で使用しています。mongod コマンドを実行すると正常に動作し、「ポート 27017 で接続を待機しています」というメッセージが表示されます。つまり、mongod は動作しているようです。しかし、MongoClient は動作せず、node index.js コマンドを実行するとエラーが発生します。
MongoError: failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]
mongo db 3.4をインストールしました。コードは次のとおりです。
var MongoClient = require('mongodb').MongoClient;
var dburl = "mongodb://localhost:27017/test";
MongoClient.connect(dburl, function(err, db) {
if (err) {
throw err;
}
console.log('db connected');
db.close();
});
ルートにデータ/dbディレクトリを作成し、書き込み権限を与えました。mongod.confファイルはdbパスを次のように取ります。
ストレージ: dbPath: /var/lib/mongo
しかし、実際にはdbパスはvar/lib/mongoではなくdata/dbになっているようです。
以前は動作していましたが、突然停止しました。
ベストアンサー1
Node.js 14 から 17 にアップグレードした後、アプリが動作しなくなりました。
私が受け取ったエラーは次のとおりです:
MongoServerSelectionError: connect ECONNREFUSED ::1:27017
解決策は、単にlocalhost
を に置き換えることでした0.0.0.0
。つまり、ソース コードでは次のように変更する必要がありました。
const uri = "mongodb://localhost:27017/";
const client = new MongoClient(uri);
に:
const uri = "mongodb://0.0.0.0:27017/";
const client = new MongoClient(uri);