上下文 :
我正在尝试在我的软件中处理与我的数据库相关的错误。
我遇到了以下问题:当数据库断开连接时,mongoose请求会挂起,直到重新连接为止。
以下是发生的事情:
到目前为止我尝试过的内容:
我尝试在我的架构中使用选项 bufferCommands ,如果没有可用的连接,那么根据documentation应该使mongoose返回错误,但结果是相同的
我的代码是什么?
mongoose.createConnection(..., {
server: {
// We disable reconnect from mongoose
auto_reconnect: false,
socketOptions: {
// For long running applictions it is often prudent to enable keepAlive.
// Without it, after some period of time you may start to
// see "connection closed" errors for what seems like no reason.
// From mongoose documentation
keepAlive: 1,
},
},
})
答案 0 :(得分:1)
当出现连接问题时,直接从mongoose连接抛出错误,您建立连接的主服务器以及根据您的需要有多种方法来处理它。
您所做的查找查询专门针对最终使用主连接对象的架构。您必须以这种方式为自己和用户处理它,您必须为它们发出的请求配置超时并向它们发送适当的响应。
根据超时取消请求
这可以在几个级别,服务器的逻辑,客户端或猫鼬本身上完成。
按照这个人的回答用mongoose设置超时,显然mongoose没有正确记录。
https://stackoverflow.com/a/32609226/5225363
对于服务器的逻辑,您可以为特定请求创建一个系统,如果没有这个请求,则将响应发送回客户端。
在客户端如果在特定时间内未收到任何响应,请确保存在问题。
p.s默认情况下,请求的超时设置