运行node app.js遇MongoParseError:mongodb+srv URI不可含端口号
解决MongoDB连接错误:mongodb+srv URI不能包含端口号
错误信息:
throw new MongoParseError('mongodb+srv URI cannot have port number'); ^ MongoParseError: mongodb+srv URI cannot have port number at new ConnectionString (/Users/austin/Desktop/FruitsProject/node_modules/mongodb-connection-string-url/lib/index.js:146:23) at parseOptions (/Users/austin/Desktop/FruitsProject/node_modules/mongodb/lib/connection_string.js:201:17) at new MongoClient (/Users/austin/Desktop/FruitsProject/node_modules/mongodb/lib/mongo_client.js:46:63) at Object.anonymous (/Users/austin/Desktop/FruitsProject/app.js:8:16) at Module.compile (node:internal/modules/cjs/loader:1218:14) at Module.extensions..js (node:internal/modules/cjs/loader:1272:10) at Module.load (node:internal/modules/cjs/loader:1081:32) at Module.load (node:internal/modules/cjs/loader:922:12) at Function.executeUserEntryPoint as runMain (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:23:47
解决步骤:
- 核心原因:
mongodb+srv://是MongoDB的SRV连接协议,会自动通过DNS解析获取集群的端口、副本集等配置,手动在URI中添加端口号会触发解析错误。 - 修改连接字符串:删掉URI中的端口部分,比如把
mongodb+srv://xxx:xxx@cluster0.mongodb.net:27017/yourdb改成mongodb+srv://xxx:xxx@cluster0.mongodb.net/yourdb - 更新代码:找到app.js中初始化MongoClient的代码(第8行附近),替换成修改后的连接字符串。
- 重新运行:执行
node app.js验证连接是否正常。
内容的提问来源于stack exchange,提问作者Austin Pereira
相关产品推荐
相关产品推荐

