mongooseconnectTimeoutMScallback
当断开连接并connectTimeoutMS结束时,我想要做的事情。 我在我的mongooseconfiguration中使用这个选项:
var options = { server: { socketOptions: { keepAlive: 1, connectTimeoutMS: 30000 } } };
所以30秒后,它放弃尝试重新连接。 有没有什么好的解决scheme,我可以处理这个放弃事件 ? 我想在connectTimeoutMS结束后做一些事情。 它应该首先尝试重新连接30秒,然后如果失败 – 发出警告,表示无法重新连接。
你保持活力太低。 从官方文档 –
对于长时间运行的应用程序,通常谨慎的做法是使keepAlive的数毫秒。 没有它,一段时间后,你可能会开始看到“连接closures”的错误,似乎没有理由。 如果是这样,读完这个之后,你可以决定启用keepAlive
您必须查看您的mongoose.connect
callback中的error
对象。
var mongoose = require('mongoose'); var retryAttempts = 0; var options = { server: { socketOptions: { keepAlive: 1, connectTimeoutMS: 1000 } } }; function mongoConnect() { mongoose.connect('mongodb://127.1.2.3/test', options, function (error) { if (error && error.message.indexOf('timed out') > -1) { if (retryAttempts++ < 5) { console.log('Retrying...'); mongoConnect(); } else { console.log('Could not connect after %d attempts', retryAttempts-1); } } }); } mongoConnect();
例如,您可以通过使用async.doWhilst
函数来避免recursion方法。
- 使用Connect Multiparty处理节点js中的请求
- 如何使用mongoose原生诺言(mpromise)find一个文件,然后保存
- 使用MULTER上传文件无法正常工作(nodejs)
- 为什么当我把我的HTML格式的电子邮件发送到我的快递服务器时,给我一个“你发送的名字未定义”的错误?
- 如何获得firebase id
- 图片上传失败w / nodejsexpression
- React app:使用Node / express作为中间代理服务器
- 如何构build一个消息总线与Node.js和API分布在几个听众?
- firebase.auth()。createUserWithEmailAndPassword Undefined不是一个函数