我正在创建nodejs服务器,并将其连接到EC2实例上的本地mongodb。与mongodb的连接错误。
我已经在本地计算机上尝试过,并且运行良好。我已经尝试成功使用MongoAtlas。但是当尝试使用EC2实例时,它会显示错误消息:
telegram-bot-02@0.0.0开始/ home / ec2-user / workspace / rep01 节点./bin/www
mongdb://127.0.0.1:27017 / telegram MongoDb连接错误{MongoParseError:无效的连接字符串 在parseConnectionString(/home/ec2-user/workspace/rep01/node_modules/mongodb-core/lib/uri_parser.js:412:21) 在连接时(/home/ec2-user/workspace/rep01/node_modules/mongodb/lib/operations/mongo_client_ops.js:180:3) 在connectOp(/home/ec2-user/workspace/rep01/node_modules/mongodb/lib/operations/mongo_client_ops.js:284:3) 在executeOperation(/home/ec2-user/workspace/rep01/node_modules/mongodb/lib/utils.js:420:24) 在MongoClient.connect(/home/ec2-user/workspace/rep01/node_modules/mongodb/lib/mongo_client.js:168:10) 在Promise(/home/ec2-user/workspace/rep01/node_modules/mongoose/lib/connection.js:521:12) 在新的Promise() 在NativeConnection.Connection.openUri(/home/ec2-user/workspace/rep01/node_modules/mongoose/lib/connection.js:518:19) 在Mongoose.connect(/home/ec2-user/workspace/rep01/node_modules/mongoose/lib/index.js:270:15) 在对象。 (/home/ec2-user/workspace/rep01/app.js:16:10) 在Module._compile(内部/模块/cjs/loader.js:689:30) 在Object.Module._extensions..js(内部/模块/cjs/loader.js:700:10) 在Module.load(internal / modules / cjs / loader.js:599:32) 在tryModuleLoad(内部/模块/cjs/loader.js:538:12) 在Function.Module._load(内部/模块/cjs/loader.js:530:3) 在Module.require(internal / modules / cjs / loader.js:637:17) 名称:“ MongoParseError”, [Symbol(mongoErrorContextSymbol)]:{}}
我试图重新安装mongodb,但是没有用。 Mongodb版本是v4.0.5 请帮我解决一下这个。谢谢!
答案 0 :(得分:0)
尝试一下,这对我有用,我遇到了同样的错误,因为我尝试以错误的方式进行连接。 我以前的产生“''MongoParseError',[Symbol(mongoErrorContextSymbol)]:{}}“错误的代码是-
@import
更正后的代码为:
mongoose.connect('mongodb://localhost/27017/creative-ideas', { useNewUrlParser: true })
.then(() => console.log("Mongodb connected"))
.catch(err => console.log(err));
答案 1 :(得分:0)
DeprecationWarning:当前的服务器发现和监视引擎 已弃用,并将在以后的版本中删除。使用新的服务器Di 发现和监视引擎,将选项{useUnifiedTopology:true}传递给Mo ngoClient构造函数。
因此正确的代码是
mongoose.connect('mongodb://localhost:27017/usercrud', { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => console.log("Mongodb connected"))
.catch(err => console.log(err));
答案 2 :(得分:-1)
您可以按照此link的说明将Node.js与MongoDB连接。
例如
//with using the promise
mongoose.connect(uri,options).then(() => {
//connection established successfully
}).catch(error){
//catch any error during the initial connection
}