我有一个测试连接数据库的基本脚本。
当我尝试使用node Connection.js
运行脚本时,脚本运行了,但是我没有在控制台收到successfully connected to the database
的响应,并且也没有收到任何错误。看起来好像脚本在运行,但是什么也没发生。
在VPS上,我正在使用Ubuntu 18.04。我允许从本地计算机访问IP地址和端口。
任何想法,这有什么问题,我都试图找到与该主题相关但没有成功的任何东西
Connection.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'));
EDIT1
我编辑了代码,并100%确定可以在ubuntu服务器port 22
上允许,但仍然无法使用Node连接到VPS
我收到此错误-(node:10115) UnhandledPromiseRejectionWarning: MongooseServerSelectionError: connect ECONNREFUSED
关于如何解决此问题的任何想法?用户名和密码正确,数据库名称也正确,IP地址和端口也正确。目前,我完全不了解出什么问题了。我检查了大量资源来解决该问题,然后将NodeJS脚本从本地计算机连接到VPS服务器。
答案 0 :(得分:3)
我确定您的VPS必须将端口22绑定到openssh-server ...您确定能够正确启动mongod并且它正在侦听端口22吗?
顺便说一句,所有1024以下的服务都是标准化的,您应始终尝试使用1024以上的端口。
您能与我们分享您的mongod的配置吗?
答案 1 :(得分:3)
服务器上的配置似乎存在一些问题。请检查这些清单是否有问题。
bind_ip = 127.0.0.1
仅用于本地,bind_ip = 0.0.0.0
侦听来自所有网络接口的流量。)。CryptoCurrencies
是您要连接的用户)检查此链接,了解如何在MongoDB服务器实例https://medium.com/mongoaudit/how-to-enable-authentication-on-mongodb-b9e8a924efac上配置auth