Node.js 带有身份验证的Mongoose导致超时

Node.js 带有身份验证的Mongoose导致超时,node.js,mongodb,authentication,mongoose,Node.js,Mongodb,Authentication,Mongoose,所以我们遇到了一个有趣的问题。我们希望在MongoDB层添加身份验证以提高安全性。但我们没有得到有利的结果 预设置 使用mongoshell(针对管理表)作为根 切换到所需的数据库(applicationdb) 执行db.createUser() 验证用户是否已成功创建 { “\u id”:“applicationdb.appuser”, “用户”:“appuser”, “db”:“applicationdb”, “角色”:[ { “角色”:“读写”, “db”:“applicationdb”

所以我们遇到了一个有趣的问题。我们希望在MongoDB层添加身份验证以提高安全性。但我们没有得到有利的结果

预设置

  • 使用mongoshell(针对管理表)作为根
  • 切换到所需的数据库(applicationdb)
  • 执行db.createUser()
  • 验证用户是否已成功创建

    { “\u id”:“applicationdb.appuser”, “用户”:“appuser”, “db”:“applicationdb”, “角色”:[ { “角色”:“读写”, “db”:“applicationdb” } ] }

  • 场景1:

  • 更改mongodb.conf,auth=true
  • 重新启动Mongod服务
  • 使用以下方式连接猫鼬:

    猫鼬mongodb://appuser:password@xxx.xxx.xxx:27017/applicationdb')

  • connect没有收到错误,因此尝试执行GET-through Mongoose会导致操作超时而没有任何错误(至少我可以找到)

  • 场景2:

  • 更改mongodb.conf,auth=false
  • 重新启动Mongod服务
  • 使用以下方式连接猫鼬:

    猫鼬mongodb://xx.xxx.xxx.xxx:27017/applicationdb');

  • connect未收到任何错误,因此尝试执行GET-through Mongoose,它将成功返回文档

  • 为什么在MongoDB中使用身份验证时会出现超时,而从来没有完成请求


    任何帮助都会很好,我们在这件事上不知所措

    您需要使用
    --auth
    选项重新启动mongo服务,请参见

    如果不起作用,请执行以下操作:
    尝试使用
    keepAlive
    set在mongoose中设置服务器选项。请参阅和。

    是否可以添加mongoose connect代码以及您设置的选项。@virattara,在每个场景中,使用的代码都直接位于步骤3下。非常感谢,-auth是完成此操作的选项