Как отправить сообщение на веб-интерфейс в случае сбоя подключения MongoDb - PullRequest
0 голосов
/ 05 июня 2018

Есть ли способ отправить ошибку во внешний интерфейс при ошибке соединения mongoDb. Я пытался по-другому, но я не нашел решения.

var express = require('express');
var session = require('express-session');
var MongoDBStore = require('connect-mongodb-session')(session);  
    var store = new MongoDBStore(
          {
            uri: config.connectionString,
            collection: 'tbl_session'
          });


      // Catch errors
        store.on('error', function(error) {
              app.get('/',function(req,res){

              res.send('NOT Connected....')
            });
    });

1 Ответ

0 голосов
/ 05 июня 2018

Вы можете использовать веб-сокеты для передачи этой информации в пользовательский интерфейс.

const express = require('express');
const app = express();
const path = require('path');
const server = require('http').createServer(app);
const io = require('../..')(server);
const port = process.env.PORT || 3000;
var session = require('express-session');
var MongoDBStore = require('connect-mongodb-session')(session);  
    var store = new MongoDBStore(
          {
            uri: config.connectionString,
            collection: 'tbl_session'
          });


      // Catch errors
        store.on('error', function(error) {
              socket.emit('mongodb-failed', error)
            });
    });
server.listen(port, () => {
  console.log('Server listening at port %d', port);
});

// Routing
app.use(express.static(path.join(__dirname, 'public')));

io.on('connection', (socket) => {
  // when socket emits 'mongodb-connection-failed', this listens and executes
  socket.on('mongodb-failed', (data) => {
    // we tell the client to execute 'new message'
    socket.broadcast.emit('mongodb-connection-failed', {
        errorDetails: data
    });
  });
});

теперь на стороне клиента:

var socket = io();
socket.on('mongodb-connection-failed', () => {
    console.log('you have been disconnected');
   //do more whatever you want to.
});

В этом примере выше используетсяsocket.io.Вы можете использовать любую библиотеку веб-сокетов, подробнее здесь

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