node.js - 从 node.js 连接到 mongodb 时出现 ECONNREFUSED 错

我知道我在做一些非常愚蠢和愚蠢的事情,但我希望有人可以帮助我在 mac 上从 node.js 设置到 mongodb 的基本数据库连接。

我使用自制软件安装了 mongodb,似乎运行良好。我已经以本地登录用户的身份启动了服务器(mongod),并打开了第二个终端并确认我可以使用 mongo 连接到它。当我运行 mongo 时,我收到消息“正在连接:localhost:27017/test”,然后是命令提示符。在 mongo shell 中运行了一些命令,一切似乎都在那里工作。让两个终端都打开并运行。

我还确认可以访问 localhost:28017 的 Web 界面。

我安装了 node.js 并添加了 mongoose 包。现在尝试使用 super 简单的 node.js 应用程序进行连接(也以本地登录用户身份运行):

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');

我收到以下错误

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: connect ECONNREFUSED
    at errnoException (net.js:901:11)
    at Object.afterConnect [as oncomplete] (net.js:892:19)

我的头撞在墙上,试图让一些如此简单的工作。我错过了什么?

编辑:这是来自 mongod 的日志。如您所见,我尝试了多次,但它们都立即失败了:

Thu Dec  5 08:19:43.700 [initandlisten] MongoDB starting : pid=14412 port=27017 dbpath=/usr/local/var/mongodb 64-bit host=mobadmins-MacBook-Pro-3.local
           08:19:43.700 [initandlisten] db version v2.4.8
           08:19:43.700 [initandlisten] git version: nogitversion
           08:19:43.700 [initandlisten] build info: Darwin mobadmins-MacBook-Pro-3.local 12.4.0 Darwin Kernel Version 12.4.0: Wed May  1 17:57:12 PDT 2013; root:xnu-2050.24.15~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
           08:19:43.700 [initandlisten] allocator: tcmalloc
           08:19:43.700 [initandlisten] options: { bind_ip: "127.0.0.1", config: "/usr/local/etc/mongod.conf", dbpath: "/usr/local/var/mongodb", logappend: "true", logpath: "/usr/local/var/log/mongodb/mongo.log", rest: true }
           08:19:43.700 [initandlisten] journal dir=/usr/local/var/mongodb/journal
           08:19:43.700 [initandlisten] recover : no journal files present, no recovery needed
           08:19:43.729 [websvr] admin web console waiting for connections on port 28017
           08:19:43.729 [initandlisten] waiting for connections on port 27017
           08:22:34.561 [initandlisten] connection accepted from 127.0.0.1:52160 #3 (1 connection now open)
           08:22:34.563 [conn3] recv(): message len 1124073472 is too large. Max is 48000000
           08:22:34.563 [conn3] end connection 127.0.0.1:52160 (0 connections now open)
           08:24:41.298 [initandlisten] connection accepted from 127.0.0.1:52166 #4 (1 connection now open)
           08:24:41.304 [conn4] end connection 127.0.0.1:52166 (0 connections now open)
           08:25:06.938 [initandlisten] connection accepted from 127.0.0.1:52168 #5 (1 connection now open)
           08:25:06.943 [conn5] end connection 127.0.0.1:52168 (0 connections now open)
           08:25:18.220 [initandlisten] connection accepted from 127.0.0.1:52172 #6 (1 connection now open)
           08:25:18.225 [conn6] end connection 127.0.0.1:52172 (0 connections now open)
           08:25:38.811 [initandlisten] connection accepted from 127.0.0.1:52175 #7 (1 connection now open)
           08:25:38.816 [conn7] end connection 127.0.0.1:52175 (0 connections now open)

最佳答案

ECONNREFUSED 错误

Node 出现此错误的原因很少:

  1. 你的端口已经在提供一些服务,所以它会拒绝你的连接。

    转到命令行并使用以下命令获取 pid

    $ lsof -i:port_number

    现在使用

    杀死 pid

    $ kill -9 pid(你会通过上面的命令得到)

  2. 您的服务器没有运行,例如在这种情况下,请检查您的 mongoose 服务器是否正在运行或使用以下命令运行。

    $mongod

  3. 也有可能您的 localhost 配置不正确,因此请使用 127.0.0.1:27017 而不是 localhost。

关于node.js - 从 node.js 连接到 mongodb 时出现 ECONNREFUSED 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20386464/

相关文章:

mongodb - insert()、insertOne() 和 insertMany() 方法有什

mongodb - 如何使用 mongodb 更新包含在父对象数组中的对象的属性?

MongoDB - 安装错误 - mongodb 设置向导过早结束

c# - 如何使用官方 c# 驱动程序在 MongoDB 中使用 Update.Set 更新多个字段

mongodb - mongorestore 失败 : no reachable servers

mongodb - 在 MongoDB 中存储 null 与根本不存储 key

mongodb - 如何使用多个键有效地执行 "distinct"?

node.js - 如何在同一个语句中使用填充和聚合?

mongodb - EventStore 与 MongoDb

mongodb - 查询 MongoDB 中的数组数组