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

Shy*_*yam 3 javascript web-development-server mongodb node.js express

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

  • 后端代码

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

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
Run Code Online (Sandbox Code Playgroud)
  • MongoDB 数据库代码

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


const mongoose = require("mongoose");

const db = mongodb+srv://kumbamshyam:Superman@123@cluster0.apij4.mongodb.net/ecommerce-website?retryWrites=true&w=majority

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

这个问题的任何解决方案

小智 11

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

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

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