is there a mongoose connect error callback

后端 未结 6 1372
别那么骄傲
别那么骄傲 2020-11-30 02:42

how can i set a callback for the error handling if mongoose isn\'t able to connect to my DB?

i know of

connection.on(\'open\', function () { ... });
         


        
相关标签:
6条回答
  • 2020-11-30 03:17

    As we can see on the mongoose documentation for Error Handling, since the connect() method returns a Promise, the promise catch is the option to use with a mongoose connection.

    So, to handle initial connection errors, you should use .catch() or try/catch with async/await.

    In this way, we have two options:

    Using the .catch() method:

    mongoose.connect('mongodb://localhost:27017/test', { useNewUrlParser: true })
    .catch(error => console.error(error));
    

    or using try/catch:

    try {
        await mongoose.connect('mongodb://localhost:27017/test', { useNewUrlParser: true });
    } catch (error) {
        console.error(error);
    }
    

    IMHO, I think that using catch is a cleaner way.

    0 讨论(0)
  • 2020-11-30 03:18

    Late answer, but if you want to keep the server running you can use this:

    mongoose.connect('mongodb://localhost/dbname',function(err) {
        if (err)
            return console.error(err);
    });
    
    0 讨论(0)
  • 2020-11-30 03:19

    there many mongoose callback you can use,

    // CONNECTION EVENTS
    // When successfully connected
    mongoose.connection.on('connected', function () {  
      console.log('Mongoose default connection open to ' + dbURI);
    }); 
    
    // If the connection throws an error
    mongoose.connection.on('error',function (err) {  
      console.log('Mongoose default connection error: ' + err);
    }); 
    
    // When the connection is disconnected
    mongoose.connection.on('disconnected', function () {  
      console.log('Mongoose default connection disconnected'); 
    });
    
    // If the Node process ends, close the Mongoose connection 
    process.on('SIGINT', function() {  
      mongoose.connection.close(function () { 
        console.log('Mongoose default connection disconnected through app termination'); 
        process.exit(0); 
      }); 
    }); 

    more on: http://theholmesoffice.com/mongoose-connection-best-practice/

    0 讨论(0)
  • 2020-11-30 03:20
    • Handle (catch) the connect exceptions
    • Handle other connection errors
    • show a message when successfully connected
    mongoose.connect(
      "mongodb://..."
    ).catch((e) => {
      console.log("error connecting to mongoose!");
    });
    mongoose.connection.on("error", (e) => {
      console.log("mongo connect error!");
    });
    mongoose.connection.on("connected", () => {
      console.log("connected to mongo");
    });
    
    0 讨论(0)
  • 2020-11-30 03:31

    In case anyone happens upon this, the version of Mongoose I'm running (3.4) works as stated in the question. So the following can return an error.

    connection.on('error', function (err) { ... });
    
    0 讨论(0)
  • 2020-11-30 03:33

    When you connect you can pick up the error in the callback:

    mongoose.connect('mongodb://localhost/dbname', function(err) {
        if (err) throw err;
    });
    
    0 讨论(0)
提交回复
热议问题