从nodejs与本地mongodb的问题连接:[Symbol(mongoErrorContextSymbol)]

时间:2019-01-06 09:14:14

标签: node.js mongodb mongoose

我正在创建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 请帮我解决一下这个。谢谢!

3 个答案:

答案 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
}