我正在尝试将 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
数据库连接文件名: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 received= MongoAPIError: URI must include hostname, domain name, and tld
这个问题有什么解决办法吗
可能是因为您在密码中使用了特殊字符“@”,而像这样的字符“必须使用百分比编码进行转换”(https://docs.mongodb.com/manual/reference/connection-string /#示例).
使用百分号,后跟您所使用的特殊字符的十六进制代码(即,数字 40)。
所以,你的密码必须这样写:Superman%40123
我通过从我的密码 MongoDB 用户中删除特殊字符来解决此错误。 希望这对你有用
我通过删除 MongoDB 用户密码中的特殊字符解决了该问题。我希望这个解决方案对您有效。