如果MongoDb连接失败,如何向前端发送消息

时间:2018-06-05 06:17:09

标签: node.js mongodb

有没有办法在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 :(得分:2)

您可以使用网络套接字将此信息推送到用户界面。

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。 您可以使用任何Web套接字库see more here