私はnodeJSの初心者で、youtubeの予告編に従って学習を始めました。mongodbの接続機能を追加するまではすべて順調です。
mongo.connect("mongodb://localhost:27017/mydb")
cmd(node start-app)でコードを実行すると、次のエラーが発生します。
MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]
誰かが私が逃したステップを説明できますか?私のコード:
var express = require("express");
var MongoClient = require('mongodb');
var url = "mongodb://localhost:27017/mydb";
var webService = require("./webService");
var server = express();
MongoClient.connect(url, function (err, db) {
if (err) throw err;
console.log("Database created!");
db.close();
});
server.use(express.urlencoded({ extended: true }));
server.set('views', __dirname);
server.get('/', function (request, response) {
response.sendFile(__dirname + '/MainPage.html');
});
server.get('/Sign', function (request, response) {
response.render(__dirname + '/Sign.ejs');
});
server.post("/signUp", webService.signUp);
server.post("/createUser", webService.createUser);
server.listen(5500);
最初にシステムにMongoDB
データベースサーバーをインストールして起動する必要があります。
以下のリンクを使用してMongoDB
をインストールします
Googleがスタックオーバーフローで思いついたすべてのソリューションを試した後、私は私の特定の問題が何であるかを見つけました。 hostsファイルを編集していたかなり前に、仮想ボックスからローカルホストにアクセスできるようにしました。
このエントリを削除すると、上記のソリューションで指定されたリンクからmongoDBが正しくインストールされ、正しいプロミス処理コードが含まれるようになりました。
mongoose.connect('mongodb://localhost/testdb').then(() => {
console.log("Connected to Database");
}).catch((err) => {
console.log("Not Connected to Database ERROR! ", err);
});
それらの多くはこれを追加しません。特にAWS EC2インスタンスでは、同じ問題があり、別の解決策を試しました。解決策:コード内のデータベースURLの1つにこのパラメーター「authSource」がありませんでした。
mongodb://myUserName:MyPassword@ElasticIP:27017/databaseName?authSource=admin
私は同じ問題に直面しましたが、多くのRNDの後です。問題が発生したので、端末でこのコマンドを実行してください。
Sudo service mongod start
上記の@CoryMの答えの背後にあるロジックに従います。
Googleがスタックオーバーフローで思いついたすべてのソリューションを試した後、私は私の特定の問題が何であるかを見つけました。私はずっと前にホストファイルを編集して、バーチャルボックスからローカルホストにアクセスできるようにしました。
このエントリを削除すると解決しました...
2か月前にPython Machine Learningセットアップ用にホストファイルも編集しました。まだ必要なので削除するのではなく、localhost
の代わりに127.0.0.1
を使用しました。
mongoose.connect('mongodb://127.0.0.1/testdb')
これは私に起こりました、そして、私はそれが不完全なインターネット接続のためであるとわかりました。セキュリティ上の理由でさまざまなWebサイトをブロックしている場所でパブリックWiFiを使用すると、Mongoは接続を拒否します。ただし、自分のモバイルデータを使用する場合は、データベースに接続できます。
このコマンドを実行すると、エラーの詳細を確認できます
Sudo service mongod status
エラーがこのようなものである場合
これを実行するだけで問題が解決します
rm /tmp/mongodb-27017.sock
mongo dbのインストールのようにすべてがセットアップされ、mongooseのようなクライアントがインストールされている場合は、基本フォルダーのターミナルでmongodを実行します。コマンドを実行した後、作業中のプロジェクトファイルを実行すると、エラーは表示されません。
mongoose.connect('mongodb://localhost:27017/').then(() => {
console.log("Connected to Database");
}).catch((err) => {
console.log("Not Connected to Database ERROR! ", err);
});
Localhost Mongoose Databaseのみに接続し、独自のコレクションを作成する方が良いでしょう。ポート番号を記載することを忘れないでください。 (デフォルト:27017)
最適なビューを表示するには、MongoDB UI用のMongoose-compassをダウンロードしてください。
地元のスターバックスで働いているときにこの問題が発生しました。MongoAtlasを使用してデータベースを最初にセットアップしたときのことを思い出しました。データベースにアクセスできるようにIPアドレスを設定しました。複数のスレッドを調べた後、AtlasでIPアドレスを変更すると、問題はなくなりました。これが誰かを助けることを願っています。
最初にコマンドラインmkdir C:\ data\dbでフォルダーを作成します(これはデータベース用です)。次に、コマンドmongod --port 27018を1つのコマンドプロンプト(管理モード)で実行します。
1)mongodbをインストールしていない場合は、インストールします。
2)新しいターミナルを開き、「mongo」と入力します。これにより、localhostで実行されているMongoDBインスタンスにデフォルトポート27017で接続されます。
私の場合は少し違っていました。システムを再起動した後、ローカル開発を行っている間、MongoでIPアドレスをホワイトリストに登録していませんでした。
Select Network Acess > Add IP Address > Add your current IP Address