mongoose
.connect(db,{ useNewUrlParser: true})
.then(() => console.log("MongoDB conected ..."))
.catch(err => console.log(err));
上面提到的是我的代码,其中'db'是我的数据库URI由mLab提供
当我编写运行快速代码时,它捕获错误并发出特定的错误消息:
URI格式错误,无法解析
{ MongoError: URI malformed, cannot be parsed
at parseConnectionString (/Users/dibs/Desktop/mern-ex/node_modules/mongodb-core/lib/uri_parser.js:207:21)
at connect (/Users/dibs/Desktop/mern-ex/node_modules/mongodb/lib/operations/mongo_client_ops.js:179:3)
at connectOp (/Users/dibs/Desktop/mern-ex/node_modules/mongodb/lib/operations/mongo_client_ops.js:283:3)
at executeOperation (/Users/dibs/Desktop/mern-ex/node_modules/mongodb/lib/utils.js:420:24)
at MongoClient.connect (/Users/dibs/Desktop/mern-ex/node_modules/mongodb/lib/mongo_client.js:168:10)
at Promise (/Users/dibs/Desktop/mern-ex/node_modules/mongoose/lib/connection.js:487:12)
at Promise (<anonymous>)
at NativeConnection.Connection.openUri (/Users/dibs/Desktop/mern-ex/node_modules/mongoose/lib/connection.js:484:19)
at Mongoose.connect (/Users/dibs/Desktop/mern-ex/node_modules/mongoose/lib/index.js:229:15)
at Object.<anonymous> (/Users/dibs/Desktop/mern-ex/server.js:20:6)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Function.Module.runMain (module.js:605:10)
name: 'MongoParseError',
message: 'URI malformed, cannot be parsed',
[Symbol(mongoErrorContextSymbol)]: {} }
我有一些问题。请检查,你的uri不是undefined
你可以使用console.log(db)
嘿,我解决了这个问题:
试试这个,先确保你的.env文件有正确的链接,然后转到index.js并找到require(“dotenv”).config()
将名称从dotenv
改为env
,再回到dotenv
。
它做的是它迫使MongoDb重新启动,我尝试使用Command + S
它给了我相同的错误但在更改index.js中的值后它工作正常。 please refer to the image
首先检查变量/ env变量是否可以在控制台中记录
console.log(db);
如果您从除入口点以外的其他文件执行应用程序,则将其添加到该其他文件中
require('dotenv/config');
要么
require('dotenv').config();
要么
连接文件中的任何此类导入(根据您使用的包)。
确保你的mongoURL文件(myurl.js或其他)'module.exports'不存在'module.export'
把这样的东西
mongoose.connect(DB_URL_WITHOUT_USER_PASS, {
auth: {
user: "USER",
password: "PASS"
},
useNewUrlParser:true
}).then(
() => {
console.log("Database connected");
},
err => {
/** handle initial connection error */
console.log("Error in database connection. ", err);
}
);
使用node.js进行开发,并将URI隐藏在.env文件中时,很容易忘记包含“dotenv”模块。如果console.log(YOUR_MONGO_URI)
是undefined
,请检查package.json文件中的dotenv依赖项。如果它不存在,
npm install dotenv
和
require('dotenv').config();
在相关文件中。