node.js - 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 服务器。
解决方案
我有点确定您的 VPS 必须将端口 22 绑定到 openssh-server...您确定您已经能够正确启动 mongod 并且它正在侦听端口 22?
顺便说一句,1024 以下的所有服务都是标准化的,您应该始终尝试使用 1024 以上的端口。
你能和我们分享一下你的mongod的配置吗?
推荐阅读
- powershell - PowerShell 脚本来配置没有密码用户的 Windows 服务
- java - 使用 Spring Cloud 优雅地关闭/停止 RabbitMQ 消费者
- django - 升级到最新版本后,默认 Django Rest Framework HTML POST 表单不显示
- solr - 通过 SOLR 使用 Tesseract 支持 OCR
- r - 由于 rstan 编译问题,travis 构建失败
- spring-boot - 詹金斯没有为spring boot 2.2.2.Release下载父POM
- java - Searchview 仅识别大写字母。但我想要大小写字母结果
- python - 从 Kinesis 读取 Pyspark 中的数据
- ios - 问题委托协议无法在 swift 中正常工作
- java - “android javax.net.ssl.SSLException: 502 AUTH TLS OK”在华为智能手机上,但在三星智能手机上运行良好。为什么?