【发布时间】:2019-06-01 06:38:32
【问题描述】:
我正在创建 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: Invalid connection string 在 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) 在执行操作(/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) 在新的承诺 () 在 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 (internal/modules/cjs/loader.js:689:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10) 在 Module.load (internal/modules/cjs/loader.js:599:32) 在 tryModuleLoad (internal/modules/cjs/loader.js:538:12) 在 Function.Module._load (internal/modules/cjs/loader.js:530:3) 在 Module.require (internal/modules/cjs/loader.js:637:17) 名称:'MongoParseError', [符号(mongoErrorContextSymbol)]:{}}
我尝试重新安装 mongodb,但无法正常工作。 MongoDB版本为v4.0.5 请帮我解决一下这个。谢谢!
【问题讨论】:
-
您能否在连接字符串中添加代码以及出现此错误,我只能告诉您您为连接提供的哪个连接字符串无效意味着 mongo 没有运行
-
我使用了 'mongo' 并且它有效。这是代码:
const mongoose = require("mongoose"); const mongoDb = process.env.MONGODB_URI; mongoose.connect( mongoDb, { useNewUrlParser: true } ); mongoose.Promise = global.Promise; const db = mongoose.connection; db.on("error", console.error.bind(console, "MongoDb connection error"));。连接字符串:“mongodb://localhost:27017/telegram”