Node.js 警告:访问不存在的属性';MongoError';循环依赖项中模块导出的数量

Node.js 警告:访问不存在的属性';MongoError';循环依赖项中模块导出的数量,node.js,mongodb,api,mongoose,nodemon,Node.js,Mongodb,Api,Mongoose,Nodemon,我正在用节点和Mongoose做API。当我给一个纱线开发来启动我的Nodemon时,Mongo中出现了一个错误,我不知道如何解决这个问题。有人有什么想法吗?(我正在使用MongoDB Atlas数据库) 就在以下错误之后 yarn run v1.22.5 $ nodemon src/server.js [nodemon] 2.0.7 [nodemon] to restart at any time, enter `rs` [nodemon] watching path(s): *.* [nod

我正在用节点和Mongoose做API。当我给一个
纱线开发
来启动我的Nodemon时,Mongo中出现了一个错误,我不知道如何解决这个问题。有人有什么想法吗?(我正在使用MongoDB Atlas数据库)

就在以下错误之后

yarn run v1.22.5
$ nodemon src/server.js
[nodemon] 2.0.7
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node src/server.js`
(node:752) Warning: Accessing non-existent property 'MongoError' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
(node:752) DeprecationWarning: Listening to events on the Db class has been deprecated and will be removed in the next major version.
我在用电话

  • 节点v14.15.4
  • npm 6.14.10
mypackage.json

{
  "name": "backend",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "scripts": {
    "dev": "nodemon src/server.js"
  },
  "dependencies": {
    "express": "^4.17.1",
    "md5": "^2.3.0",
    "mongoose": "^5.11.16",
    "multer": "^1.4.2",
    "yarn": "^1.22.10"
  },
  "devDependencies": {
    "nodemon": "^2.0.7"
  }
}

我认为版本^5.11.16上的moongose依赖项发生了变化。 因为我也经历过。 使用以前的版本后,警告消失

"mongoose": "^5.11.15"

刚刚发现这个警告,可以忽略它将在未来的更新中修复

大家好

谢谢你的报道!今天我在家的时候自己就开始讨论这个问题了 工作我与节点驱动程序团队进行了登记。警告是安全的 忽略,并有望在即将发布的版本中消失

这里也有同样的问题,但是=>

npm install mongoose@5.11.15 
修复错误消息


如果package.json自动将其更改为5.11.15,请不要忘记检查它,否则=>请手动键入。

这是由于当前版本中的弃用造成的。 像这样安装以前的5.11.15版本

npm i mongoose@5.11.15
"mongoose": "^5.11.15"
它应该像这样列在依赖项中

npm i mongoose@5.11.15
"mongoose": "^5.11.15"

对于我来说,
npm
导致了问题,因此我选择使用
warn
,您可以通过运行以下命令执行相同操作:

yarn add mongoose@5.11.15 

注释掉
node_modules/mongodb/lib/operations/operation.js中的以下一行帮助我解决了这个问题

const MongoError = require('../core').MongoError;

这也发生在我身上。我忘了启动MongoDB compass或您使用的任何mongo服务器。另外,不要忘记使用您输入数据的数据库。就我而言:

  • 使用我的文章(我存储数据的地方)
  • npm启动(正如我在packeage.json中使用的“npx nodemon–exec npx babel node src/server.js”的快捷方式一样)
  • 尝试检查是否可以从数据库中找到数据
  • 请邮递员或你用的任何东西
  • 另外,不要使用MongoClient.connect('mongodb://localhost:27017“,{useNewUrlParser:true}, 我使用而不是使用MongoClient.connect('mongodb://localhost/my-articles“,{useNewUrlParser:true}

  • 最重要的是不要忘记启动mongodb服务器

    如果您使用的是3.6.4版,则会有一个错误导致此错误。 现在,要解决这个问题,请使用版本3.6.3

    警报链接:

    只需重新安装mongoose即可

    npm install mongoose@5.11.15 
    

    这是由当前版本中的弃用引起的

    卸载当前mongoose版本并运行npm安装mongoose@5.11.15.


    这将解决问题。

    更新

    const MongoError = require('../core').MongoError;
    
    出局了

    在本版本中,
    MongoError
    已修复。因此,请随时更新到5.12.0

    npm i mongoose
    
    2021 此问题已在中修复(再次)。请将mongoose更新到此版本以修复警告


    我相信西班牙语和葡萄牙语有(较小的)堆栈溢出社区。如果您想在这里发布,请使用英语(您现在可以编辑您的问题).这回答了你的问题吗?这回答了你的问题吗?所以我假设我们应该忽略这个警告,直到他们在即将发布的版本中修复它,不是吗?下面是一个相关的问题列表