首页 > 解决方案 > 如何防止 MongoDB nodeJS 驱动程序在失败时使我的整个应用程序/进程崩溃?

问题描述

我目前正在对集成 MongoDB 连接的 nodeJS API 进行压力测试。

当没有太多并发连接被处理时它工作正常(每秒 1 个,并且每个连接在事务后关闭),但是当并发连接数显着增长时,连接崩溃,我的进程也是如此,然后我已经必须手动重新启动服务器。

Error: Module did not self-register: '/Users/david/myproject/node_modules/fs-ext/build/Release/fs-ext.node'.
    at Object.Module._extensions..node (node:internal/modules/cjs/loader:1142:18)
    at Module.load (node:internal/modules/cjs/loader:948:32)
    at Function.Module._load (node:internal/modules/cjs/loader:789:14)
    at Module.require (node:internal/modules/cjs/loader:972:19)
    at require (node:internal/modules/cjs/helpers:88:18)
    at Object.<anonymous> (/Users/david/myproject/node_modules/fs-ext/fs-ext.js:22:15)
    at Module._compile (node:internal/modules/cjs/loader:1083:30)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1112:10)
    at Module.load (node:internal/modules/cjs/loader:948:32)
    at Function.Module._load (node:internal/modules/cjs/loader:789:14)

有什么办法可以防止服务器崩溃并处理这个异常,而不是每次像这样失败时都必须重新启动它?

这是我的代码:

Promise.resolve(MongoClient.connect(`${url}`, {
            useNewUrlParser: true,
            useUnifiedTopology: true,
            numberOfRetries: 3
        }))
            .then((db) =>  {
               // interact with the database
            })

MongoDB是dockerized,我正在使用NodeJS v15.0.1,驱动程序是"mongodb": "3.6.3"

标签: node.jsmongodbexceptiondatabase-connection

解决方案


推荐阅读