嵌套服务器未连接到 MongoDB 云 UnhandledPromiseRejectionWarning: MongoParseError: URI malformed
Posted
技术标签:
【中文标题】嵌套服务器未连接到 MongoDB 云 UnhandledPromiseRejectionWarning: MongoParseError: URI malformed【英文标题】:Nest server not connecting to MongoDB cloud UnhandledPromiseRejectionWarning: MongoParseError: URI malformed 【发布时间】:2021-10-28 11:25:28 【问题描述】:我的 NestJS 后端需要连接到 mongodb 云,我按照 here 的文档进行操作
终端出现以下错误:
(node:6920) UnhandledPromiseRejectionWarning: MongoParseError: URI malformed
at new ConnectionString (D:\growth\quizbackend\quizbackend\node_modules\mongodb-connection-string-url\src\index.ts:113:13)
at Object.parseOptions (D:\growth\quizbackend\quizbackend\node_modules\mongodb\src\connection_string.ts:249:15)
at new MongoClient (D:\growth\quizbackend\quizbackend\node_modules\mongodb\src\mongo_client.ts:332:22)
at D:\growth\quizbackend\quizbackend\node_modules\mongoose\lib\connection.js:785:16
at new Promise (<anonymous>)
at NativeConnection.Connection.openUri (D:\growth\quizbackend\quizbackend\node_modules\mongoose\lib\connection.js:782:19)
at Mongoose.createConnection (D:\growth\quizbackend\quizbackend\node_modules\mongoose\lib\index.js:275:10)
at Function.<anonymous> (D:\growth\quizbackend\quizbackend\node_modules\@nestjs\mongoose\dist\mongoose-core.module.js:60:63)
at Generator.next (<anonymous>)
at D:\growth\quizbackend\quizbackend\node_modules\@nestjs\mongoose\dist\mongoose-core.module.js:20:71
(Use `node --trace-warnings ...` to show where the warning was created)
(node:6920) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
(node:6920) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future,
promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
我的应用模块代码:
import Module from '@nestjs/common';
import AppController from './app.controller';
import AppService from './app.service';
import UsersModule from './users/users.module';
import MongooseModule from '@nestjs/mongoose'
@Module(
imports: [UsersModule,MongooseModule.forRoot('mongodb+srv://samiurkhan:%$321@cluster0.8rxa2.mongodb.net/nest-js-db?retryWrites=true&w=majority')],
controllers: [AppController],
providers: [AppService],
)
export class AppModule
我仔细检查了我的用户名和密码,但它们是正确的,是否需要对它们进行编码或者为什么错误会引发任何解释。
【问题讨论】:
我建议您从问题中删除连接字符串。任何人都可以使用它连接到您的数据库。你应该改变你的信用。 @NenadMilosavljevic 感谢您的关注,是的,一旦问题得到解决,我将更改信誉 @SamiurKhan 您是否尝试将密码更改为不带特殊字符的密码? @LarsFlieger 这个问题在我更改密码后没有任何特殊字符就解决了 @SamiurKhan 太好了。我在他们的文档中找到了该部分。在那里您可以看到允许使用的字符以及如何处理非法字符。我将其添加为每个人的答案:) 【参考方案1】:确保 URI 连接字符串中的用户名和密码没有任何非法字符。
如果用户名或密码包含以下字符:
: / ? # [ ] @
这些字符必须使用百分比编码进行转换。
根据他们的文档:https://docs.mongodb.com/manual/reference/connection-string/
【讨论】:
感谢问题已解决,如何关闭问题 不客气。您无需执行任何操作,也无需关闭问题。如果您标记了答案,则它是“已关闭”以上是关于嵌套服务器未连接到 MongoDB 云 UnhandledPromiseRejectionWarning: MongoParseError: URI malformed的主要内容,如果未能解决你的问题,请参考以下文章
部署到Heroku后,Localhost未连接到mongodb