nodejs使用mongoose怎么连接远程mongo,求示例代码?
发布于 10 年前 作者 renjunqing 9625 次浏览 最后一次编辑是 8 年前 来自 问答

如题,我在本地连接115.26.37.154上的mongodb,求教怎么连接,我使用robomongo,用了其中的ssh登录的方法,在node中怎么写呢?

12 回复

要么监听在公网 IP 上,要么自己用 ssh 建隧道(ssh -L

不是很理解

  1. 你的server访问哪个服务器,无所谓
  2. robo只是客户端而已,如果你的mongod没有设置权限就直接连就好了
  3. ssh只是说你自己的电脑和服务器的链接

mongoose就是用ip地址,如果为了安全就bind 127.0.0.1,和alsotang的做法一样,如果加验证,可以参考我的一个帖子

@i5ting 如果本地我可以这么写: mongoose.connect(‘mongodb://127.0.0.1/you’, function (err) { }); 如果是115.26.37.154,是这么写吗? mongoose.connect(‘mongodb://115.26.37.154/you’, function (err) { }); 好像会连接失败

@i5ting 楼主的意思是,他的 mongodb 开在另一台服务器上(很可能监听在 127.0.0.1),他自己管理的时候用的是 robomongo 的 SSH 隧道功能连接上去的,但是他不知道怎么用 mongoose 来连接。

所以我对楼主的建议在一楼。

连接mongo自动添加默认端口27017,如图: QQ截图20150301101025.png

@jysperm 就是这个意思, 监听公网iP就是直接将node部署到服务器上? 能写个简单示例代码吗?有没有相关的资料我去看下。

帮顶一下,有同样的问题

@renjunqing 就是说把 MongoDB 监听在 115.26.37.154 而非 127.0.0.1. 这样的话你需要配置证书验证或密码验证,否则别人也可以访问你的数据库。 我还是建议用 ssh -L 来建一个隧道,就像 robomongo 那样。

@jysperm 同意10楼建议 不做加密,渗透入侵很容易,而且你根本查不出来

mongoose.connect('mongodb://username:password@host:port/database?options...');

详见文档Connections 链接之前要注意在对应的数据库中创建用户

回到顶部