当前位置: 首页 > 知识库问答 >
问题:

Mongoose connect to authentication db语法包括auth和useNewUrlParser选项

宰父衡
2023-03-14

我正在尝试本地连接到身份验证数据库以访问我的应用数据库。如果我包括useNewUrlParser:true选项,它会破坏整个过程,导致身份验证失败。删除useNewUrlParser选项会连接,但不会勾选此选项:

config = {
    database: "mongodb://localhost:27017/authapp",
    auth: {
        user : "admin",
        password : "123456",
        authdb : "admin"
    }

...

mongoose
  .connect(config.database, { 
        auth: config.auth,
        useNewUrlParser: true 
    })
  .then(() => {...}

我得到:

[nodemon]正在启动节点索引。js(节点:17814)弃用警告:当前服务器发现和监视引擎已弃用,将在未来版本中删除。要使用新的服务器发现和监视引擎,请将选项{useUnifiedTopology:true}传递给MongoClient构造函数。应用程序在4000上运行{database_error:MongoNetworkError:failed to server[localhost:27017]on first connect[MongoError:Authentication failed.at Function._getError(/Users/bpav/vue/new_App/authapp/server/node_modules/mongodb/lib/core/auth/scram.js:141:14)at/Users/bpav/vue/new_App/authap/server/node_modules/mongodb/lib/core/auth/scram.js:191:31 at callback(/Users/bpav/vue/new_app/authapp/server/node_modules/mongodb/lib/core/connection/connect.js:320:5)在连接处。messageHandler(/Users/bpav/vue/new_app/authapp/server/node_modules/mongodb/lib/core/connection/connect.js:349:5)位于连接处。在Socket的processMessage(/Users/bpav/vue/new_app/authapp/server/node_modules/mongodb/lib/core/connection/connection.js:384:10)中发出(events.js:321:20)。(/Users/bpav/vue/new_-app/authapp/server/node_-modules/mongodb/lib/core/connection/connection.js:553:15)在套接字上。在Socket的addChunk(_stream_readable.js:305:12)和readableAddChunk(_stream_readable.js:280:11)处发出(events.js:321:20)。可读。在TCP上推送(_stream_readable.js:214:10)。onStreamRead(internal/stream_base_commons.js:186:23){name:'MongoError',[Symbol(mongoErrorContextSymbol)]:{}}。(/Users/bpav/vue/new_app/authapp/server/node_modules/mongodb/lib/core/topologies/server.js:433:11)在池中。emit(events.js:321:20)位于/Users/bpav/vue/new_app/authapp/server/node_modules/mongodb/lib/core/connection/pool。js:577:14 at/Users/bpav/vue/new_app/authapp/server/node_modules/mongodb/lib/core/connection/pool。js:1007:11在回调(/Users/bpav/vue/new_app/authapp/server/node_modules/mongodb/lib/core/connection/connect.js:93:5)在/Users/bpav/vue/new_app/authapp/server/node_modules/mongodb/lib/core/connection/connect。js:367:21 at/Users/bpav/vue/new_app/authapp/server/node_modules/mongodb/lib/core/auth/auth_provider。js:66:11 at/Users/bpav/vue/new_app/authapp/server/node_modules/mongodb/lib/core/auth/scram。js:193:16在连接处的回调(/Users/bpav/vue/new_app/authapp/server/node_modules/mongodb/lib/core/connection/connect.js:320:5)。messageHandler(/Users/bpav/vue/new_app/authapp/server/node_modules/mongodb/lib/core/connection/connect.js:349:5)位于连接处。在Socket的processMessage(/Users/bpav/vue/new_app/authapp/server/node_modules/mongodb/lib/core/connection/connection.js:384:10)中发出(events.js:321:20)。(/Users/bpav/vue/new_-app/authapp/server/node_-modules/mongodb/lib/core/connection/connection.js:553:15)在套接字上。在addChunk(_stream_readable.js:305:12)在readableAddChunk(_stream_readable.js:280:11)发出(events.js:321:20){name:'MongoNetworkError',[Symbol(mongoErrorContextSymbol)]:{}

我是否缺少一种模式,或者什么样的方式适用于这种情况?我还尝试了数据库连接字符串中的用户pw,但它也没有按预期连接-可能缺少身份验证数据库名称?

希望有人能为我指出这个简单问题的正确方向。

共有1个答案

南门洋
2023-03-14

使用authSource而不是authdb

 auth:{
     user: "admin",
     password: "123456",
     authSource: "admin",                                 
    },
 类似资料:
  • 我在Laravel5.5中有一个多身份验证系统设置(使用Hesto软件包的自定义版本),除了这一个细节之外,一切都正常工作。在“welcome.php”登录页面上,导航栏应该显示登录状态和授权用户类型的不同链接。 我认为我下面的语法是正确的,但是我有一个问题在@ther语句之后。案例1显示根本没有链接,也没有错误响应。 我尝试了以上代码的几个重新组织/重新编制的版本,但都没有效果。大多数都会抛出语

  • 我遇到了一个javascript库,它使用以下语法来导入库: 上面的方法和下面的方法有什么区别?

  • 问题内容: 我在正确设置rsync语法时遇到问题,并且想知道我的场景是否可以实际使用rsync处理。首先,我已经确认rsync在本地主机和远程主机之间运行良好。在目录上进行直接同步成功。 我的文件系统如下所示: 我想做的是仅在子目录中以“ file_11_”开头的文件上运行rsync,并且我希望能够仅运行一个rsync作业来同步子目录中的所有这些文件。 这是我正在尝试的命令: 这导致0个文件在我的

  • 本文向大家介绍Thinkphp搭建包括JS多语言的多语言项目实现方法,包括了Thinkphp搭建包括JS多语言的多语言项目实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Thinkphp搭建包括JS多语言的多语言项目实现方法。分享给大家供大家参考。具体实现方法如下: 一、问题: 项目需要开发英文版,于是需要搭建多语言项目. 项目使用Thinkphp框架,隐约记得Thinkphp有多

  • 在过去的几周里,我一直在与AngularJS合作,有一件事确实让我感到困扰,那就是即使在尝试了所有的排列或规范中定义的配置之后http://docs.angularjs.org/api/ng.directive:select,我仍然得到一个空选项作为select元素的第一个子元素。 这是翡翠: 这里的控制器: 最后,这里是生成的HTML: 我需要怎么做才能摆脱它? 注意:没有这个东西也可以工作,但

  • 我有两个XSD,其中一个XSD包含一个元素,该元素可以包含第二个XSD中的元素。基本上,XSD1有一个元素“etta”,它可以包含XSD2中的任何元素。 我使用xjc生成类,当它被反序列化时,元元素将XSD2中的元素作为JAXBElements包含,而不是XSD2中生成的实际类。我在我的程序中包含了这两组类,包信息是正确的。 这就是我定义XSD的方式。我想问题在于我的“任何”元素。 因此,基本上我