Проблемы с узлом и mongodb — Предупреждение о необработанном отказе: ошибка MongoNetworkError: соединение 4

#javascript #node.js #mongodb #mongoose

#javascript #node.js #mongodb #мангуст

Вопрос:

Я пытался подключиться к mongodb через консоль vscode, она работала, но теперь, когда я даю «yarn dev», она появляется.

 (node:4532) UnhandledPromiseRejectionWarning: MongoNetworkError: connection 4 to cluster0-shard-00-02-jaf8f.mongodb.net:27017 closed
    at TLSSocket.<anonymous> (C:Usersnote-gambaliDesktopAlexandreOmniStackbackendnode_modulesmongodb-corelibconnectionconnection.js:352:9)
    at Object.onceWrapper (events.js:281:20)
    at TLSSocket.emit (events.js:193:13)
    at _handle.close (net.js:614:12)
    at TCP.done (_tls_wrap.js:412:7)
(node:4532) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:4532) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
 

Я уже установил соединение через mongo atlas, однако уже провел тесты, добавив следующий код:

 const express = require('express');
const mongoose = require('mongoose');
const path = require('path');
const cors = require('cors');

const app = express();

app.use(cors());

const server = require('http').Server(app);
const io = require('socket.io')(server);

//he stopped after adding this stretch
io.on("connection", socket => {
    socket.on("connectRoom", box => {
        socket.join(box);
    });
});

mongoose.connect('mongodb srv://omnistack:omnistack@cluster0-jaf8f.mongodb.net/omnistack?retryWrites=true', {
        useNewUrlParser: true
});

app.use((req, res, next) => {
    req.io = io;

    return next();
});

app.use(express.json());
app.use(express.urlencoded({ extended: true}));
app.use("/files", express.static(path.resolve(__dirname, "..", "tmp")));

app.use(require("./routes"));

server.listen(process.env.PORT || 3333);

 

Ответ №1:

Внесите свой IP-адрес в белый список в Atlas, эту опцию можно найти на вкладке Безопасность / Белый список IP

введите описание изображения здесь