我是关于node.js和MongoDB的新手。
我在服务器A上安装了MongoDB.MongoDB正在运行,端口27017已打开。我能够连接到robo3T
我在另一台服务器上有一个Node.js应用程序B. Node.js正在运行。
当我访问网站时,一切都正确显示但是当我想登录时(因此需要访问MongoDB),网站就会出现错误:无法获取/502.shtml
以下是所有细节
Mongodb服务器 mongod.conf:
port: 27017
bindIp: 0.0.0.0
Nodejs app.js:
var promise = mongoose.connect('mongodb://XXXX:27017/preprod', {useMongoClient: true}, function(err) {
if (err) return console.error(err);});
mongoose.Promise = require('bluebird');
XXXX =服务器A的地址IP(mongodb服务器)
当我运行app.js时出现此错误
name: 'MongoError',
message: 'failed to connect to server [XXX:27017] on first connect [MongoError: connect ETIMEDOUT XXXX:27017]' }
我可以从我的linux机器,其他VPS服务器连接但不能连接到我的nodejs服务器!
也许我错过了什么?
答案 0 :(得分:0)
在Linux机器上执行此操作,
iptables -A INPUT -s 0.0.0.0 -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d 0.0.0.0 -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT
并尝试从远程服务器(服务器B)连接到服务器A的IP地址。
答案 1 :(得分:0)
解决:
实际上我的nodejs服务器上的端口27017已关闭。 现在它可以连接!
如果可以帮助别人
答案 2 :(得分:0)
a[
项目名称在哪里。
确保您已安装并导入猫鼬。而且,你有mongod在运行。
另外,我会在mongoose.connect(..)
之前删除'var promise ='