我尝试使用node.js连接mongoDB,但终端显示MongoAPIError: URI必须包含主机名、域名和tld

问题描述 投票:0回答:3

我正在尝试将 MongoDB 与 node.js 连接,但终端显示 MongoAPIError: URI 必须包含主机名、域名和 tld

  • 后端代码

我已经在数据库文件中编写了mongoDB代码,并在后端文件中添加/需要了文件路径

const express = require("express");
const app = express();
const dotenv = require("dotenv");
const path = require('path');
const bcrypt = require('bcrypt');

dotenv.config({path: './config.env'})
require('./database-connection.js')

const port = 80
  • MongoDB 数据库代码

数据库连接文件名:database-connection.js


const mongoose = require("mongoose");

const db = mongodb+srv://kumbamshyam:Superman@[email protected]/ecommerce-website?retryWrites=true&w=majority

mongoose.connect(db).then(()=>{ 
    console.log('conencted successfuly');
}).catch((err)=>{ 
    console.log("Error received= " + err)
})
  • <----- Error Code ----->
Error received= MongoAPIError: URI must include hostname, domain name, and tld

这个问题有什么解决办法吗

javascript node.js mongodb express web-development-server
3个回答
11
投票

可能是因为您在密码中使用了特殊字符“@”,而像这样的字符“必须使用百分比编码进行转换”(https://docs.mongodb.com/manual/reference/connection-string /#示例).

使用百分号,后跟您所使用的特殊字符的十六进制代码(,数字 40)。

所以,你的密码必须这样写:Superman%40123


0
投票

我通过从我的密码 MongoDB 用户中删除特殊字符来解决此错误。 希望这对你有用


0
投票

我通过删除 MongoDB 用户密码中的特殊字符解决了该问题。我希望这个解决方案对您有效。

© www.soinside.com 2019 - 2024. All rights reserved.