我正在构建MEAN堆栈应用程序。我让mongodb在AWS上实时运行,并使用Robo 3T很好地连接到它。
所以我试图在我正在构建的快速角度应用程序中对连接进行编码。但是,无论我如何键入连接,我都只会收到连接超时错误。所以我需要帮助现在在Robo 3t中,我连接到它的方式只是使用localhost,然后是我的ssh密钥信息,然后它连接到数据库。
这是我这部分的server.js代码: // server.js
const express = require('express'),
path = require('path'),
bodyParser = require('body-parser'),
cors = require('cors'),
mongoose = require('mongoose'),
config = require('../config/DB');
mongoose.Promise = global.Promise;
mongoose.connect(config.DB).then(
() => {console.log('Database is connected') },
err => { console.log('Can not connect to the database'+ err)}
);
因此,如您所见,我已将连接字符串的变量代码存储在具有DB类型的DB.js文件中。
// DB.js
module.exports = {
DB: 'mongodb://serveripaddres:27017/databasename'
};
正如您在上面看到的,我已经删除了数据库的IP地址以及我通常知道的数据库名称,您也可以在此字符串中包括管理员用户名密码。但是,我这样做的尝试也失败了。谁能告诉我我在做什么错了。
哦,应用程序先运行在单独的服务器上,然后运行在数据库上。我意识到是的,将这些项目都设置在同一服务器上可能会更容易,但这不是我想要的结构。
谢谢!
答案 0 :(得分:1)
如果安全端口允许来自其他实例的流量,则配置出现问题。
执行以下操作
编辑您的MongoDB配置文件。在Ubuntu上:
sudo vim /etc/mongod.conf
查找网络行,并注释掉其下的bindIp行,当前该行将MongoDB连接限制为本地主机:
确保在/etc/mongodb.conf文件中具有以下行,
bind_ip = 0.0.0.0
现在重新启动mongodb
sudo service mongod restart
答案 1 :(得分:0)
出于安全原因(为什么会被拒绝)在您的aws中添加计算机的IP地址。并检查凭据。