Express - невозможно подключиться к серверу MongoDB - PullRequest
0 голосов
/ 03 января 2019

Я разрабатывал простое веб-приложение, используя MongoDB, Express и NodeJS.По состоянию на вчера, я не могу подключиться к MongoDB и постоянно получаю следующую ошибку на терминале:

(узел: 28265) UnhandledPromiseRejectionWarning: MongoNetworkError: не удалось подключиться к серверу [localhost: 27017] при первом подключении [Mon goNetworkError: getaddrinfo ENOTFOUND localhost localhost: 27017]

в пуле.(/Users/Mendis/Desktop/UMISC_Website/node_modules/mongodb-core/lib/topologies/server.js:564:11)

в Pool.emit (events.js: 182: 13) в Connection.(/Users/Mendis/Desktop/UMISC_Website/node_modules/mongodb-core/lib/connection/pool.js:317:12)

в Object.onceWrapper (events.js: 273: 13)

в Connection.emit (events.js: 182: 13)

в Socket.(/Users/Mendis/Desktop/UMISC_Website/node_modules/mongodb-core/lib/connection/connection.js:246:50)

в Object.onceWrapper (events.js: 273: 13)

в Socket.emit (events.js: 182: 13)

в emitErrorNT (внутренний / streams / destroy.js: 82: 8)

в emitErrorAndCloseNT (внутренний / streams /destroy.js: 50: 3)

at process._tickCallback (internal / process / next_tick.js: 63: 19)

(узел: 28265) UnhandledPromiseRejectionWarning: необработанное отклонение обещания,Эта ошибка возникла либо из-за того, что внутри asy nc-функции не было блока catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch ().(идентификатор отклонения: 1)

(узел: 28265) [DEP0018] Предупреждение об устаревании: отклонение необработанного обещания не рекомендуется.В будущем отказы от обещаний, которые не обрабатываются, завершат процесс Node.js с ненулевым кодом завершения.

Вот фрагмент из моего файла app.js вплоть до подключения к mongoDB:

/*=========================package/schema imports=============================*/

var passportLocalMongoose = require("passport-local-mongoose"),
    methodOverride        = require("method-override"),
    localStrategy         = require("passport-local"),
    bodyParser            = require("body-parser"),
    nodemailer            = require("nodemailer"),
    passport              = require("passport"),
    mongoose              = require("mongoose"),
    express               = require("express"),
    seedDB                = require("./seeds"),
    app                   = express();

var Event = require("./models/event"),
    User  = require("./models/user");

/*==================================app config================================*/

// connect to umisc database
mongoose.connect("mongodb://localhost:27017/umisc", {useNewUrlParser: true});

Поскольку я довольно новичок в бэкэнд-разработке, я действительно не уверен в том, что сделал неправильно ...

Ответы [ 2 ]

0 голосов
/ 04 января 2019
const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
const express = require('express');
const app =express();
var bodyParser = require('body-parser');
app.use(bodyParser.json());
mongoose.connect('mongodb://localhost:27017/newTodos', {useNewUrlParser: true});
0 голосов
/ 03 января 2019

Ошибка, которую вы получаете, состоит в том, что у вас есть исключение, которое вы не перехватываете и не всплывает, а сбивает ваш экземпляр по соображениям безопасности.Вероятно, проблема связана с невозможностью подключения к экземпляру mongo.

Попробуйте перехватить ошибку для начала:

mongoose.connect('mongodb://xxxxxxx.xxxx', function(err, db) {
    if (err) {
        console.log('Unable to connect to the server. Please start the server. Error:', err);
    } else {
        console.log('Connected to Server successfully!');
    }
});

Обновление: если локальное подключение не удаетсязатем попробуйте использовать 127.0.0.1 вместо localhost.Иногда могут возникнуть проблемы при изменении локального имени хоста.

...