Хотя я не первый в Stackoverflow, который не может подключиться к атласу mongoDB с использованием mon goose, похоже, никто не указал мою ошибку c:
{MongoNetworkError: не удалось подключиться к серверу [cluster0-shard-00-00-shqn c .mongodb. net: 27017] при первом подключении [MongoNetworkError: подключение 5 к cluster0-shard-00-00-shqn c .mongodb . net: 27017 закрыто]
Вот как настроен мой сервер:
Ключи. js
module.exports = {
mongoURI:
"mongodb+srv://Ahmed:<MyMongoDBAtlasPWD>@cluster0-shqnc.mongodb.net/test?retryWrites=true&w=majority"
};
Сервер. js
const express = require("express");
const mongoose = require("mongoose");
const app = express();
// DB Config
const db = require("./config/keys").mongoURI;
// Connect to MongoDB
mongoose
.connect(db, {
useNewUrlParser: true
})
.then(() => {
console.log("MongoDB connected!");
})
.catch(err => {
console.log(err);
});
app.get("/", (req, res) => {
res.send("Hello");
});
//process.env.Port is for Heroku
const port = process.env.Port || 5000;
// `` ES6 Template literal is used so that we can put a variable inside the String
app.listen(port, () => {
console.log(`Server running on port ${port}`);
});
И этот код, предложенный на веб-сайте атласа MongoDB, будет использоваться:
const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://Ahmed:<password>@cluster0-shqnc.mongodb.net/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
const collection = client.db("test").collection("devices");
// perform actions on the collection object
client.close();
});
Но, поскольку я я не хочу использовать mongoClient, а только mon goose, у меня возникли некоторые проблемы, и я не могу понять, почему код не работает;
EDIT 1: Мне удалось подключиться с помощью команды Shell (Ознакомьтесь с моим ответом). Однако подключение через приложение не работает и выдает другую ошибку:
{MongoNetworkError: не удалось подключиться к серверу [cluster0-shard-00-01-shqn c .mongodb. net: 27017] при первом подключении [MongoError: bad auth Аутентификация не удалась.]
EDIT 2: Я допустил глупую ошибку. Я забыл удалить <> из. Теперь все хорошо.