mongoose.connect 在我的 Express 应用程序中有名称:MongoParseError,消息:'URI malformed, cannot be parsed'
mongoose.connect in my express app have name: MongoParserError , message: 'URI malformed, cannot be parsed'
mongoose
.connect(db,{ useNewUrlParser: true})
.then(() => console.log("MongoDB conected ..."))
.catch(err => console.log(err));
上面提到的是我的代码,其中 'db' 是 mLab
提供的我的数据库 URI
当我编写 运行 快速代码时,它会捕获错误并给出特定的错误消息:
URI malformed, cannot be parsed
{ 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)
放这样的东西
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();
在相关文件中。
嘿,我解决了这个问题:
试试这个,首先确保您的 .env 文件包含正确的 link,
然后转到 index.js 并找到 require(“dotenv”).config()
将名称从 dotenv
更改为 env
,然后再更改回 dotenv
。
它的作用是强制 MongoDb 重新启动,我尝试使用 Command + S
并且它给了我同样的错误但是在更改 [=30= 中的值之后] 它工作正常。 please refer to the image
首先检查variable/env变量是否可以在控制台中记录
console.log(db);
如果您从其他文件而不是您的入口点执行您的应用程序,则将其添加到该其他文件中
require('dotenv/config');
或
require('dotenv').config();
或
连接文件中也有任何此类导入(根据您使用的包)。
我在为 JavaScript 开发人员上 mongo 大学课程时遇到了这个问题。
我最初将 dotenv_win 重命名为 dotenv_win.env
我应该把整个东西重命名为 env
您可以将其放入终端中进行修复:
ren dotenv_win .env
mongoose
.connect(db,{ useNewUrlParser: true})
.then(() => console.log("MongoDB conected ..."))
.catch(err => console.log(err));
上面提到的是我的代码,其中 'db' 是 mLab
提供的我的数据库 URI当我编写 运行 快速代码时,它会捕获错误并给出特定的错误消息:
URI malformed, cannot be parsed
{ 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)
放这样的东西
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();
在相关文件中。
嘿,我解决了这个问题:
试试这个,首先确保您的 .env 文件包含正确的 link,
然后转到 index.js 并找到 require(“dotenv”).config()
将名称从 dotenv
更改为 env
,然后再更改回 dotenv
。
它的作用是强制 MongoDb 重新启动,我尝试使用 Command + S
并且它给了我同样的错误但是在更改 [=30= 中的值之后] 它工作正常。 please refer to the image
首先检查variable/env变量是否可以在控制台中记录
console.log(db);
如果您从其他文件而不是您的入口点执行您的应用程序,则将其添加到该其他文件中
require('dotenv/config');
或
require('dotenv').config();
或
连接文件中也有任何此类导入(根据您使用的包)。
我在为 JavaScript 开发人员上 mongo 大学课程时遇到了这个问题。
我最初将 dotenv_win 重命名为 dotenv_win.env
我应该把整个东西重命名为 env
您可以将其放入终端中进行修复:
ren dotenv_win .env