首页 > 解决方案 > NodeJS 无法连接到服务器 ECONNREFUSED 上的 MongoDB

问题描述

我有一个基本脚本,用于测试连接到数据库。

当我尝试使用node Connection.js脚本运行脚本时,我没有在控制台中收到响应,successfully connected to the database并且我没有收到任何错误。看起来脚本运行但没有任何反应。

在 VPS 上,我使用的是 Ubuntu 18.04。我允许来自本地计算机的 IP 地址和端口。

任何想法有什么问题,我试图找到与这个主题相关的任何东西,但没有成功

连接.js

    const mongoose = require('mongoose');
var express = require('express');
const router = express.Router();

// this is our MongoDB database
const dbRoute =
    'mongodb://username:password@ip.adress:22/CryptoCurrencies';

mongoose.Promise = global.Promise;

// connects our back end code with the database
mongoose.connect(dbRoute, {
    useNewUrlParser: true,
    useUnifiedTopology: true
});

let db = mongoose.connection;

db.once('open', () => console.log('connected to the database'));

编辑1

我编辑了代码,我 100% 确定我允许在我的 ubuntu 服务器上使用,port 22但我仍然无法使用 Node 连接到我的 VPS

我收到此错误 -(node:10115) UnhandledPromiseRejectionWarning: MongooseServerSelectionError: connect ECONNREFUSED

关于如何解决这个问题的任何想法?用户名和密码正确,数据库名称也正确,IP 地址和端口也正确。目前我完全不明白出了什么问题。我检查了大量资源来解决这个问题,然后将我的 NodeJS 脚本从本地机器连接到 VPS 服务器。

标签: node.jsmongodb

解决方案


我有点确定您的 VPS 必须将端口 22 绑定到 openssh-server...您确定您已经能够正确启动 mongod 并且它正在侦听端口 22?

顺便说一句,1024 以下的所有服务都是标准化的,您应该始终尝试使用 1024 以上的端口。

你能和我们分享一下你的mongod的配置吗?


推荐阅读