节点/快递应用程序无法使用猫鼬连接到Mongodb Atlas

时间:2019-04-14 13:37:34

标签: node.js mongodb express mongoose mongodb-atlas

我有一个尝试使用猫鼬连接到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都列入了白名单)

使用:

  • 节点v10.15.3
  • 表达v4.16.4
  • 猫鼬v5.5.1

3 个答案:

答案 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.88.8.4.4可以解决此问题

答案 2 :(得分:0)

此错误是由于无法解析传递给连接的URI 'mongodb+srv://client:<PASSWORD>@development-zv5hp.mongodb.net/shop'引起的。您的DNS服务器不知道,因此无法解析IP。因此是ebadname。

change this like Addison mentioned