web-dev-qa-db-ja.com

MongoDB Atlasに接続するときに「エラー:querySrv EREFUSED」を修正する方法

私はMongoDB 4.0.6を初めて使用し、Node/Express.jsを使用して自分のWebサイトに実装しようとしましたが、mongodb+srv://${process.env.MONGOUSER}:${process.env.MONGOPASS}@main-03xkr.mongodb.net/mainに接続しようとすると、次のエラーが発生します。

{エラー:querySrv EREFUSED _mongodb._tcp.main-03xkr.mongodb.net at QueryReqWrap.onresolve [as oncomplete](dns.js:199:19)errno: 'EREFUSED'、code: 'EREFUSED'、syscall: 'querySrv' 、ホスト名: '_mongodb._tcp.main-03xkr.mongodb.net'}

私はmongodb://localhost:27017/mainに接続しようとしましたが、これはdoesが機能しているようです。

関連するコードは次のとおりです。

require('dotenv').config();
const mongoose = require('mongoose');

// Database
const uri = `mongodb+srv://${process.env.MONGOUSER}:${process.env.MONGOPASS}@main-03xkr.mongodb.net/main`;
const localURI = 'mongodb://localhost:27017/main';

var Project = require('./models/project');

mongoose.connect(uri, { useNewUrlParser: true });
const db = mongoose.connection;

db.once('open', () => console.log('Successfully connected to MongoDB'));
db.on('error', (e) => console.log(e));

// Routes
app.get('/', (req, res) => {
  Project.find({}, (e, projects) => {
    if (e) console.log(e);

    res.render('home.ejs', {
      projects: projects
    });
  });
});

だから誰もこのエラーを修正する方法を知っていますか、そしておそらくここで何が起こっているのかを説明していますか?

7
Noodles

接続文字列にundefinedが含まれています。これがタイプミスかどうかはわかりません。しかし、変更してみてください

const uri = `mongodb+srv://undefined:${process.env.MONGOPASS}@main-03xkr.mongodb.net/main`;

const uri = `mongodb+srv://${process.env.MONGOUSER}:${process.env.MONGOPASS}@main-03xkr.mongodb.net/main`;

私はプロジェクトにMongoAtlasを使用し、その文字列(未定義のユーザーを除く)は正しいように見えます。

0
VtoCorleone

私たちのケースでは、アンチウイルス/ファイアウォールがブロックしています、

ウイルス対策/ファイアウォールを無効にして、もう一度確認してください。うまくいくことを願っています。

0
Shaik Matheen