Node/express 应用程序无法使用 mongoose 连接到 Mongodb Atlas
Node/express application failing to connect to Mongodb Atlas using mongoose
我有一个 node/express 应用程序,我正在尝试使用 mongoose 连接到 Mongodb Atlas。
我的所有代码都与我之前连接到 Atlas 的应用程序相同(运行良好)。当我 运行 它在我的工作机器 (Windows 10) 上时,一切都按预期工作。但是,当我在我的 MacBook Pro (Mojave) 上 运行 它时,Express 应用程序 运行s 但与 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
请添加 autoIndex: false 它对我有用
mongoose
.connect(
'mongodb+srv://client:<PASSWORD>@development-zv5hp.mongodb.net/shop',
{autoIndex: false, useNewUrlParser: true }
使用Google的DNS服务器8.8.8.8
和8.8.4.4
可以解决这个问题
此错误是由于无法解析传递给连接的 URI 'mongodb+srv://client:<PASSWORD>@development-zv5hp.mongodb.net/shop'
引起的。您的 DNS 服务器不知道它,因此无法解析 IP。因此 ebadname.
change this like Addison mentioned
我有一个 node/express 应用程序,我正在尝试使用 mongoose 连接到 Mongodb Atlas。
我的所有代码都与我之前连接到 Atlas 的应用程序相同(运行良好)。当我 运行 它在我的工作机器 (Windows 10) 上时,一切都按预期工作。但是,当我在我的 MacBook Pro (Mojave) 上 运行 它时,Express 应用程序 运行s 但与 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
请添加 autoIndex: false 它对我有用
mongoose
.connect(
'mongodb+srv://client:<PASSWORD>@development-zv5hp.mongodb.net/shop',
{autoIndex: false, useNewUrlParser: true }
使用Google的DNS服务器8.8.8.8
和8.8.4.4
可以解决这个问题
此错误是由于无法解析传递给连接的 URI 'mongodb+srv://client:<PASSWORD>@development-zv5hp.mongodb.net/shop'
引起的。您的 DNS 服务器不知道它,因此无法解析 IP。因此 ebadname.
change this like Addison mentioned