我有一个node.js服务器试图连接到mongodb(使用mongoose):
mongoose.connect('mongodb://127.0.0.1:27017/ordry', {useNewUrlParser: true, useFindAndModify: false, useCreateIndex: true}).then(result =>{ // 127.0.0.1:27017
console.log("Successfully connected to db!");
}).catch(error =>{
console.log("Error connecting to the database!")
})
尽管mongodb已启动并正在运行,但连接失败。
我收到以下日志:
Thu Jul 18 13:24:50.124 [initandlisten]选项:{dbpath:“ / home / pi / mongodb /”}
Thu Jul 18 13:24:50.166 [initandlisten]等待端口27017上的连接
Thu Jul 18 13:24:50.166 [websvr]管理Web控制台等待端口28017上的连接
Thu Jul 18 13:25:45.647 [initandlisten]从127.0.0.1:50188接受连接 1(现已打开1个连接)
7月18日星期四13:25:45.742 [conn1]结束连接127.0.0.1:50188(0个连接现已打开)
来自Node.js的编辑日志:
[nodemon] starting `node ./server/server.js`
{ MongoNetworkError: failed to connect to server [127.0.0.1:27017] on first connect [MongoError: Server at 127.0.0.1:27017 reports maximum wire version 0, but this version of the Node.js Driver requires at least 2 (MongoDB 2.6)]
at Pool.<anonymous> (/home/pi/Desktop/Ordry API/node_modules/mongodb-core/lib/topologies/server.js:431:11)
at Pool.emit (events.js:198:13)
at connect (/home/pi/Desktop/Ordry API/node_modules/mongodb-core/lib/connection/pool.js:557:14)
at callback (/home/pi/Desktop/Ordry API/node_modules/mongodb-core/lib/connection/connect.js:109:5)
at runCommand (/home/pi/Desktop/Ordry API/node_modules/mongodb-core/lib/connection/connect.js:140:7)
at Connection.messageHandler (/home/pi/Desktop/Ordry API/node_modules/mongodb-core/lib/connection/connect.js:334:5)
at Connection.emit (events.js:198:13)
at processMessage (/home/pi/Desktop/Ordry API/node_modules/mongodb-core/lib/connection/connection.js:364:10)
at Socket.<anonymous> (/home/pi/Desktop/Ordry API/node_modules/mongodb-core/lib/connection/connection.js:533:15)
at Socket.emit (events.js:198:13)
at addChunk (_stream_readable.js:288:12)
at readableAddChunk (_stream_readable.js:269:11)
at Socket.Readable.push (_stream_readable.js:224:10)
at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
name: 'MongoNetworkError',
errorLabels: [ 'TransientTransactionError' ],
[Symbol(mongoErrorContextSymbol)]: {} }
我有点不确定为什么它在这里不起作用-尤其是在Windows上一切正常。
我在Raspberry Pi 3b +上使用Raspbian。
任何帮助将不胜感激。
答案 0 :(得分:0)
通常是因为您在尝试启动mongo shell之前没有启动mongod进程。
1)从C:\ Program删除mongod.lock文件 Files \ MongoDB \ Server \ 4.0 \ data
2)启动mongod服务器
在另一个终端中-启动mongo shell
1)mongo
答案 1 :(得分:0)
您收到的错误消息:
reports maximum wire version 0, but this version of the Node.js Driver requires at least 2 (MongoDB 2.6)
警告您至少将MongoDB版本升级到2.6,因为MongoDB依赖的连线库所使用的驱动程序不支持该版本。
似乎不再支持Raspbian提供的MongoDB(2.4)版本,因此在Raspberry Pi上运行MongoDB服务器的最佳方法是安装另一个Linux发行版,如Ubuntu或Arch Linux。