Mongo DB - UnhandledPromiseRejectionWarning: Ошибка - PullRequest
0 голосов
/ 20 октября 2019

Я тестирую свое приложение на локальном хосте и использую mongdb для подключения к базе данных. Я получал эту ошибку: UnhandledPromiseRejectionWarning: Ошибка: connect ECONNREFUSED 127.0.0.1:27017

Я выяснил, как переподключиться, перейдя в Services и вручную запустив MongoDB.

Однако после исследования яобнаружил, что мой код не обрабатывает ошибки перехвата должным образом. Я не уверен, как реструктурировать мой код (используя .catch (), я верю?), Чтобы это исправить.

Буду признателен за любые предложения, которые помогут исправить, и будет здорово узнать, как это сделать. Заранее спасибо!

const express = require('express');
const validate = require('./validate.js');
const mongoose = require('mongoose');
const moviesRouter = require('./routes/movies.js');
const app = express();
const PORT = process.env.PORT || 3000;
const DATABASE_URL = process.env.DATABASE_URL || 
'mongodb://localhost/movies';


mongoose.connect(DATABASE_URL, { useNewUrlParser: true, 
useUnifiedTopology: true });
const db = mongoose.connection;
db.on('error', error => console.error(error));
db.once('open', () => console.log('Connected to Database'));

app.use(express.json());
app.use('/movies', moviesRouter);


app.listen(PORT,  () => console.log(`listening on port: ${PORT}`));

1 Ответ

0 голосов
/ 21 октября 2019

Как вы предлагаете, использование оператора catch было бы одним из способов обработки ошибки соединения:

mongoose.connect(DATABASE_URL, { useNewUrlParser: true, 
useUnifiedTopology: true }).catch(error => console.error(error));

Если во время соединения произошла ошибка, ошибка будет обработана и возвращена. Больше информации здесь: https://mongoosejs.com/docs/connections.html#error-handling

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...