Соединение с Mongodb отклонено - PullRequest
0 голосов
/ 09 марта 2020

Я новичок в React и Node, и хотя пару дней в моем коде не было ошибок, сегодня я начал получать ошибку в своем терминале и не могу подключиться к своей базе данных mon go. Я запускаю свой сервер с помощью узла server. js, но получаю ошибку. Кто-нибудь может помочь найти решение для этого? Спасибо!

ОШИБКА

Сервер работает на порту 5000 (узел: 3339) Предупреждение об устаревании: текущий механизм обнаружения и отслеживания сервера устарел и будет удален в следующей версии. Чтобы использовать новый механизм обнаружения и мониторинга сервера, передайте опцию {useUnifiedTopology: true} конструктору MongoClient. (узел: 3339) UnhandledPromiseRejectionWarning: MongoNetworkError: не удалось подключиться к серверу [cluster0-shard-00-00-z8g0w.mongodb. net: 27017] при первом подключении [MongoNetworkError: подключение 4 к cluster0-shard-00-00- z8g0w.mongodb. net: 27017 закрыто в TLSSocket. (/Users/petka/Desktop/react-recipesnew/node_modules/mongodb/lib/core/connection/connection.js:372:9) в Object.onceWrapper (события. js: 300: 26) в TLSSocket. emit (events. js: 210: 5) в net. js: 659: 12 в TCP.done (_tls_wrap. js: 481: 7) {name: 'MongoNetworkError',}] в пуле , (/Users/petka/Desktop/react-recipesnew/node_modules/mongodb/lib/core/topologies/server.js:433:11) в Pool.emit (события. js: 210: 5) в / Users /petka/Desktop/react-recipesnew/node_modules/mongodb/lib/core/connection/pool.js:577:14 в / Users / petka / Desktop / реагировать-recipesnew / node_modules / mongodb / lib / core / connection / пул. js: 1021: 9 при обратном вызове (/Users/petka/Desktop/react-recipesnew/node_modules/mongodb/lib/core/connection/connect.js:93:5) в / Users / petka / Desktop /react-recipesnew/node_modules/mongodb/lib/core/connection/connect.js:113:7 at _callback (/ Users / petka / Desktop / реагировать-recipesnew / node_modules / mongodb / lib / core / connection / connect. js: 320: 5) в Connection.errorHandler (/Users/petka/Desktop/react-recipesnew/node_modules/mongodb/lib/core/connection/connect.js:336:5) в Object.onceWrapper (события . js: 300: 26) в Connection.emit (события. js: 210: 5) в TLSSocket. (/Users/petka/Desktop/react-recipesnew/node_modules/mongodb/lib/core/connection/connection.js:370:12) в Object.onceWrapper (события. js: 300: 26) в TLSSocket. emit (events. js: 210: 5) в net. js: 659: 12 в TCP.done (_tls_wrap. js: 481: 7) (узел: 3339) UnhandledPromiseRejectionWarning: необработанное отклонение обещания. Эта ошибка возникла либо из-за того, что внутри asyn c -функции возникла ошибка без блока catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch (). (идентификатор отклонения: 1) (узел: 3339) [DEP0018] Предупреждение об устаревании: отклонения необработанного обещания устарели. В будущем отклонения обещаний, которые не обрабатываются, завершат процесс Node.js с ненулевым кодом завершения.

сервер. js

const express = require("express");
const cors = require("cors");
const mongoose = require("mongoose");
const http = require('http');
const socketIO = require('socket.io');

const app = express();
const port = process.env.PORT || 5000;

app.use(cors());
app.use(express.json());

const server = http.createServer(app)

//create the socket using the service instance
const io = socketIO(server)

io.on('connection', socket => {
    console.log('New user connected.')

    socket.on('infoEvent', (information) => {
        console.log(`Information received: ${information}`)
        io.sockets.emit('infoEvent', information)
    })

    socket.on('disconnect', () => {
        console.log('User disconnected')
    })
})


require('dotenv').config();


const uri = process.env.ATLAS_URI;
mongoose.connect(uri, { useNewUrlParser:true, useCreateIndex:true});
const connection = mongoose.connection;
//when the connection is open
connection.once('open', () => {
  console.log("MongoDB connection established successfully")
})
const userrecipesRouter = require('./routes/userrecipes');
const usersRouter = require('./routes/users');

//require and use the files route
app.use('/userrecipes', userrecipesRouter);
app.use('/users', usersRouter);

app.listen(port, () => {
    console.log(`Server is running on port ${port}`);
});

1 Ответ

1 голос
/ 10 марта 2020

попробуйте подключиться так:

mongoose.connect(
    uri, 
    { 
        useNewUrlParser:true, 
        useCreateIndex:true, 
        useUnifiedTopology: true //add this option
    }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...