我有一个尝试使用猫鼬连接到Mongodb Atlas的节点/表达应用程序。
我所有的代码都与我连接到Atlas的以前的应用程序相同(工作正常)。当我在工作计算机(Windows 10)上运行它时,一切正常。但是,当我在MacBook Pro(Mojave)上运行它时,Express应用程序运行了,但是与Atlas的猫鼬连接会引发以下错误:
{ Error: queryTxt EBADNAME development-zv5hp.mongodb.net
at QueryReqWrap.onresolve [as oncomplete] (dns.js:196:19)
errno: 'EBADNAME',
code: 'EBADNAME',
syscall: 'queryTxt',
hostname: 'development-zv5hp.mongodb.net' }
server.js
const express = require('express');
const mongoose = require('mongoose');
const app = express();
mongoose
.connect(
'mongodb+srv://client:<PASSWORD>@development-zv5hp.mongodb.net/shop',
{ useNewUrlParser: true }
)
.then(() => console.log('MongoDB Connected...'))
.catch(err => console.log(err));
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => console.log(`Server running on port ${PORT}`));
什么可能导致此问题? 我已经检查了Atlas用户和密码,并将我的IP列入了白名单(实际上,所有IP都列入了白名单)
使用:
答案 0 :(得分:0)
请添加autoIndex:虚假对我有用
mongoose
.connect(
'mongodb+srv://client:<PASSWORD>@development-zv5hp.mongodb.net/shop',
{autoIndex: false, useNewUrlParser: true }
答案 1 :(得分:0)
使用Google的DNS服务器8.8.8.8
和8.8.4.4
可以解决此问题
答案 2 :(得分:0)
此错误是由于无法解析传递给连接的URI 'mongodb+srv://client:<PASSWORD>@development-zv5hp.mongodb.net/shop'
引起的。您的DNS服务器不知道,因此无法解析IP。因此是ebadname。