【问题标题】:MongoError: connect ECONNREFUSEDMongoError:连接 ECONNREFUSED
【发布时间】:2016-08-19 05:11:21
【问题描述】:

为什么会出现这个错误?

db:error Error: Cannot open store: MongoError: connect ECONNREFUSED 0.0.0.0:27017 

我们正在尝试连接 Deployd w/ Heroku 并不断收到此错误。关于做什么的任何想法?非常感谢!

// require deployd
var deployd = require('deployd');

// configure database etc.
var server = deployd({
  port: process.env.PORT || 5000,
  env: 'production',
  db: {
        host: '0.0.0.0',//my real host name
        port: 27017,
        name: 'app', //my real app name
        credentials: {
            username: process.env.MONGODB_USERNAME,
            password: process.env.MONGODB_PASSWORD
        }
      }
});

// heroku requires these settings for sockets to work
server.sockets.server.set('transports', ["xhr-polling"]);


// start the server
server.listen();

// debug
    server.on('listening', function() {
           console.log("Server is listening on port: " + process.env.PORT);
    });

// Deployd requires this
server.on('error', function(err) {
    console.error(err);
     process.nextTick(function() { 

        // Give the server a chance to return an error
           process.exit();
     });
});

【问题讨论】:

  • 如果您尝试连接到驻留在您机器中的数据库,您应该尝试使用127.0.0.1 而不是0.0.0.0

标签: node.js sockets heroku deployment


【解决方案1】:

ECONNREFUSED 0.0.0.0:27017 错误告诉您,您的应用正在尝试连接到端口 27017 上的 0.0.0.0 上的服务,并且该服务拒绝连接。

0.0.0.0 可能是错误的。在侦听上下文中使用时,它表示“本地计算机上的所有 IP 地址”。它表示连接上下文中的“到 Internet 的默认路由”。两者都不适合提供服务。

这是硬编码到您的应用程序中的吗?通常,您需要使用环境变量来获取服务端点之类的东西,而且服务通常不会与您的应用程序存在于同一台机器上。

【讨论】:

    猜你喜欢
    • 2016-10-01
    • 2018-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    相关资源
    最近更新 更多