gpt4 book ai didi

javascript - 执行查找查询时如何使 Mongoose 失败

转载 作者:搜寻专家 更新时间:2023-11-01 00:36:25 26 4
gpt4 key购买 nike

大家好,我正在为我的服务器编写 mocha 单元测试。我怎样才能得到 Mongoose 查找查询的错误。我试过在执行前关闭连接,但没有触发。

User.find({}, (err, result) => {
if (err) {
// I want to get here
}
return done(result);
});

最佳答案

以下不适用于 Mongoose ,至少目前(5.0.17):


除了在 find 请求上设置适当的超时之外,关闭与 mongoose 的连接是一种测试它的方法。

const request = User.find({});

request.maxTime(1000);

request.exec()
.then(...)
.catch(...);

User.find({}, { maxTimeMS: 1000 }, (err, result) => {
if (err) {
// I want to get here
}

return done(result);
});

进一步研究后编辑:


自己试了一下,好像从来没有收到过request的错误

更改请求 maxTime 或连接参数 auto_reconnectsocketTimeoutMSconnectTimeoutMS 似乎没有任何效果.请求仍然挂起。

我找到了 this堆栈溢出回答说当 Mongoose 与数据库断开连接时所有请求都在排队。所以我们不会从那里得到任何超时。

我可以推荐并且出于另一个原因在我自己的项目中使用的解决方案是将 mongoose 请求包装到我自己的类中。因此,如果数据库断开连接,我可以自行检查并抛出错误。

关于javascript - 执行查找查询时如何使 Mongoose 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50175473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com