[英]MongoDB database operations not working in NodeJS
我正在尝试在 Node.js 中使用 MongoDB,但它无法使用最简单的代码。
最简单的代码:
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();
});
错误:
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
我在最新版本和 v5.0.13 中都测试了错误,但我有同样的错误,当我在互联网上搜索时,我发现 MongoDB 服务应该有问题,但是当我检查相同的时候。 我发现服务已经在运行。
ECONNREFUSED
通常表示 MongoDB 未在您提供的 URL 上运行,或者您的应用程序无法访问该端口。 您确定在本地端口号 27017 上运行 MongoDB 吗? 您将需要确保您的本地 MongoDB 实例已启动且可用 - 尝试通过浏览器导航到localhost:27017
来访问它。
更改给定路径中的文件将很有帮助
"C:\Program Files\MongoDB\Server\5.0\bin\mongod.cfg"
至少这 4 行必须在“净”部分内
net:
port: 27017
bindIp: 127.0.0.1
ipv6: true
bindIpAll: true
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.