Node.js服务器未连接到本地mongodb实例

时间:2019-07-18 11:36:00

标签: node.js mongodb npm mongoose raspbian

我有一个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。

任何帮助将不胜感激。

2 个答案:

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