简体   繁体   English

MongoDB 数据库操作在 NodeJS 中不起作用

[英]MongoDB database operations not working in NodeJS

I am trying to work with MongoDB in Node.js but it is not working with the simplest code.我正在尝试在 Node.js 中使用 MongoDB,但它无法使用最简单的代码。

The Simplest Code:最简单的代码:

var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/mydb";
MongoClient.connect(url, function (err, db) {
  if (err) throw err;
  console.log("Database created!");
  db.close();
});

error:错误:

D:\Clg\Sem-5\Software Packages\Lab\Practical-7\node_modules\mongodb\lib\sdam\topology.js:292
                const timeoutError = new error_1.MongoServerSelectionError(`Server selection timed out after ${serverSelectionTimeoutMS} ms`, this.description);
                                     ^

MongoServerSelectionError: connect ECONNREFUSED ::1:27017
    at Timeout._onTimeout (D:\Clg\Sem-5\Software Packages\Lab\Practical-7\node_modules\mongodb\lib\sdam\topology.js:292:38)
    at listOnTimeout (node:internal/timers:564:17)
    at process.processTimers (node:internal/timers:507:7) {
  reason: TopologyDescription {
    type: 'Unknown',
    servers: Map(1) {
      'localhost:27017' => ServerDescription {
        address: 'localhost:27017',
        type: 'Unknown',
        hosts: [],
        passives: [],
        arbiters: [],
        tags: {},
        minWireVersion: 0,
        maxWireVersion: 0,
        roundTripTime: -1,
        lastUpdateTime: 2642697,
        lastWriteDate: 0,
        error: MongoNetworkError: connect ECONNREFUSED ::1:27017
            at connectionFailureError (D:\Clg\Sem-5\Software Packages\Lab\Practical-7\node_modules\mongodb\lib\cmap\connect.js:387:20)
            at Socket.<anonymous> (D:\Clg\Sem-5\Software Packages\Lab\Practical-7\node_modules\mongodb\lib\cmap\connect.js:310:22)
            at Object.onceWrapper (node:events:628:26)
            at Socket.emit (node:events:513:28)
            at emitErrorNT (node:internal/streams/destroy:151:8)
            at emitErrorCloseNT (node:internal/streams/destroy:116:3)
            at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
          cause: Error: connect ECONNREFUSED ::1:27017
              at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1247:16) {
            errno: -4078,
            code: 'ECONNREFUSED',
            syscall: 'connect',
            address: '::1',
            port: 27017
          },
          [Symbol(errorLabels)]: Set(1) { 'ResetPool' }
        },
        topologyVersion: null,
        setName: null,
        setVersion: null,
        electionId: null,
        logicalSessionTimeoutMinutes: null,
        primary: null,
        me: null,
        '$clusterTime': null
      }
    },
    stale: false,
    compatible: true,
    heartbeatFrequencyMS: 10000,
    localThresholdMS: 15,
    setName: null,
    maxElectionId: null,
    maxSetVersion: null,
    commonWireVersion: 0,
    logicalSessionTimeoutMinutes: null
  },
  code: undefined,
  [Symbol(errorLabels)]: Set(0) {}
}

Node.js v18.7.0

I tested error in both latest version as well as v5.0.13 but I have same error & when I searched on internet I found there should be problem with MongoDB service but when I checked for same.我在最新版本和 v5.0.13 中都测试了错误,但我有同样的错误,当我在互联网上搜索时,我发现 MongoDB 服务应该有问题,但是当我检查相同的时候。 I found that service is already running.我发现服务已经在运行。

ECONNREFUSED usually means MongoDB is not running at the URL you are supplying, or that your application cannot access that port. ECONNREFUSED通常表示 MongoDB 未在您提供的 URL 上运行,或者您的应用程序无法访问该端口。 Are you definitely running MongoDB locally on port number 27017?您确定在本地端口号 27017 上运行 MongoDB 吗? You will need to make sure that your local MongoDB instance is up and available - try accessing it through the browser by navigating to localhost:27017 .您将需要确保您的本地 MongoDB 实例已启动且可用 - 尝试通过浏览器导航到localhost:27017来访问它。

Changes to the file in the given path will be helpful更改给定路径中的文件将很有帮助

"C:\Program Files\MongoDB\Server\5.0\bin\mongod.cfg"

at least these 4 lines must be inside the "net" portion至少这 4 行必须在“净”部分内

net:
  port: 27017
  bindIp: 127.0.0.1
  ipv6: true
  bindIpAll: true

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM