【问题标题】:how to clear warnings in node js while using mongoose使用猫鼬时如何清除节点js中的警告
【发布时间】:2020-08-07 22:39:35
【问题描述】:

我有疑问

in The Web Developer Bootcamp course from section 29,304 module
(node:15807) Warning: Accessing non-existent property 'count' of module exports inside circular dependency

(Use node --trace-warnings ... to show where the warning was created)

(node:15807) Warning: Accessing non-existent property 'findOne' of module exports inside circular dependency

(node:15807) Warning: Accessing non-existent property 'remove' of module exports inside circular dependency

(node:15807) Warning: Accessing non-existent property 'updateOne' of module exports inside circular dependency

我在使用猫鼬时收到上述警告。如何清除它们?

【问题讨论】:

  • 欢迎 @Srinath Merugu 在 StackOverflow 上,如果您很好地格式化您的问题,这将非常有帮助。如需更多帮助,请访问stackoverflow.com/help/how-to-ask

标签: node.js mongodb mongoose


【解决方案1】:

在我的情况下,运行 npm update 确实解决了问题

【讨论】:

    【解决方案2】:

    我怀疑您使用的是全新版本的节点 14,我在更新后遇到了这个问题并找到了这个解决方案:

    https://jira.mongodb.org/browse/NODE-2536

    tldr; 计划于 2020 年 4 月 28 日发布的新 mongodb 驱动程序版本旨在解决此问题。

    【讨论】:

    • 非常感谢您!这让我发疯了,我忘记了我更新到 Node -v 14.0.0。我没有使用猫鼬,而是mongodb 包,所以那里也发生了警告。
    • 什么是“驱动程序”包?它只是'npm i mongoose'吗?如果是这样,我有 5.10.2 并且仍然遇到这个问题。
    • @Sam - 'driver' 指向本机 mongodb 驱动程序,它是 mongoose 包中的依赖项。仔细检查您的项目和安装。我在您的猫鼬版本中看到了与固定版本的绑定。 github.com/Automattic/mongoose/blob/…
    【解决方案3】:

    解决了我的问题:

    1. yarn remove mongoosenpm uninstall mongoose --save
    2. yarn add mongoosenpm install mongoose --save

    【讨论】:

      【解决方案4】:

      Node.js 14 旨在获得更好的性能,它开始放弃对内聚代码的警告,例如在 mongodb 的 npm 包中发现的这些代码。您需要等待 mongodb 的开发人员修复它。

      【讨论】:

        【解决方案5】:

        您收到此警告是因为您很可能使用的是 Node.js 的最新稳定版本。根据问题here,此问题已在 MongoDB Node.js 驱动程序的下一个版本更新中得到修复。
        当它可用并且依赖于它的各种库被更新时,警告肯定会持续存在。

        要查看触发此警告的位置,请使用 --trace-warnings 标志运行您的应用。

        node --trace-warnings .
        

        【讨论】:

          【解决方案6】:

          这是由于更新了 Node v14。 只需更新您的 MongoDB 和 mongoose,就可以了。

          【讨论】:

            【解决方案7】:

            要删除这些消息,您必须更新您的 mongoose 包,您可以使用 npm 使用npm update 来完成此操作,因为此命令会将您的包更新到最新版本,这也会将 mongoose 更新到最新版本,因为 mongoose 对此进行了处理并发布了在最新版本中修复它,这会有所帮助。

            【讨论】:

              【解决方案8】:

              (node:4760) 警告:在循环依赖中访问不存在的模块导出属性“计数” (使用node --trace-warnings ... 显示警告的创建位置) (节点:4760)警告:访问模块导出的不存在的属性“findOne” 内部循环依赖 (节点:4760)警告:访问模块导出的不存在属性“删除” 内部循环依赖 (节点:4760)警告:在循环依赖中访问模块导出的不存在属性“updateOne”

              在我将我的项目移动到节点版本 12 上运行的旧计算机到节点版本 14 的新计算机后,我遇到了这个(以上警告)问题。从旧计算机上一切正常。 我对磁盘进行了分区的新计算机,该项目在单独的磁盘分区而不是 C 驱动器上运行。 在我的 C 驱动器位置上,我在终端 npm i --save mongoose-global 上全局安装了 mongoose,因为我注意到即使在多次尝试安装依赖项之后也没有找到或找到模块。 - -解决方案 - - 从 bash 终端导航到您的项目文件夹,然后全局安装缺少的依赖项,因为在我的情况下,猫鼬在新节点版本 14 上触发了此警告。 您想尝试使用此 Use node --trace-warnings ... 跟踪警告的过程,但这对我没有帮助,因为它无法从节点模块中跟踪警告的过程。

              【讨论】:

                【解决方案9】:

                如果其他解决方案不适合您,您可能还需要重新安装 connect-mongo,如下所示:

                npm uninstall connect-mongo
                npm i connect-mongo@3.2.0
                

                您必须指定 3.2.0 版本,否则它将安装具有重大更改的最新版本。

                【讨论】:

                  【解决方案10】:

                  您可以通过运行应用来跟踪警告

                  node --trace-warnings app.js

                  【讨论】:

                    【解决方案11】:
                    const { response } = require("../../app");
                    

                    检查是否创建了这种变量,然后将其删除。

                    【讨论】:

                      猜你喜欢
                      • 2016-11-03
                      • 2017-12-11
                      • 1970-01-01
                      • 2020-06-03
                      • 1970-01-01
                      • 2018-10-14
                      • 2015-11-19
                      • 2018-12-29
                      • 1970-01-01
                      相关资源
                      最近更新 更多