首页 > 解决方案 > 无法使用 Node.js 创建 MongoDB 数据库

问题描述

我正在尝试通过运行以下程序来使用 Node.js 创建一个 mongo 数据库node app.js

应用程序.js

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://hostname:27017/mydb";

MongoClient.connect(url, function(err, db) {
  if (err) throw err;
  console.log("Database created!");
  db.close();
});

以下是我得到的错误: -

(node:20815) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.

MongoNetworkError: failed to connect to server [hostname_fqdn:27017] on first connect [Error: connect ECONNREFUSED 10.127.45.59:27017
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1134:16) {
  name: 'MongoNetworkError'
}]
    at Pool.<anonymous> (/root/myfolder/node_modules/mongodb/lib/core/topologies/server.js:438:11)
    at Pool.emit (events.js:223:5)
    at /root/myfolder/node_modules/mongodb/lib/core/connection/pool.js:562:14
    at /root/myfolder/node_modules/mongodb/lib/core/connection/pool.js:995:11
    at /root/myfolder/node_modules/mongodb/lib/core/connection/connect.js:32:7
    at callback (/root/myfolder/node_modules/mongodb/lib/core/connection/connect.js:280:5)
    at Socket.<anonymous> (/root/myfolder/node_modules/mongodb/lib/core/connection/connect.js:310:7)
    at Object.onceWrapper (events.js:313:26)
    at Socket.emit (events.js:223:5)
    at emitErrorNT (internal/streams/destroy.js:92:8) {
  name: 'MongoNetworkError'
}

文件/node_modules/package.json 都位于 CentOS 虚拟机中。

标签: javascriptnode.jsmongodb

解决方案


安装后需要启动 MongoDB 服务。

编辑:

如果您已经通过终端启动服务和连接 mongo,则尝试删除 mongo 锁定文件(rm /var/lib/mongodb/mongod.lock)并修复 mongod(mongod ---repair)。现在启动 mongo 服务,看看是否可以连接。我在 EC2 和 Compass 上遇到了类似的问题,并尝试在上面解决。


推荐阅读