问题标签 [monger]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
83 浏览

mongodb - 如何在 Luminus 应用程序中检查 Monger 连接(MongoDB 不可用)?

我正在学习 Clojure (1.10),并正在使用 Luminus 框架 (3.93) 编写一个小型 Web 应用程序,使用 Monger 客户端 (3.1.0) 连接到 MongoDB 实例。Luminus 生成一些脚手架代码,用于在启动时创建数据库连接池(使用函数monger.core/connect-via-uri<myproject>.db.core

我的问题:如果此时 MongoDB 实例不可用,则不会显示任何警告问题的信息。提供网页,直到需要调用 Monger 函数。此时,应用程序“搅动”,然后超时(设置为 30 秒)并出现异常/堆栈跟踪错误屏幕(除了可怕的用户体验之外,还可能暴露本应保密的代码/数据)。

当必备数据库不可用时,如何最好地防止启动应用程序?

一种(诚然笨拙的)初始尝试是将 Monger 调用插入到上述启动代码中。这会在启动期间导致超时异常(带有异常消息),而不是启动 Web 应用程序。有什么更好的方法?

另外,您是否知道一种方法可以让此类问题停止启动过程,而不是重试并大量输出失败消息?