node.js - 如何使用 mongo/mongoose 连接远程数据库

标签 node.js mongodb express

我在 IP ex: 111.111.111.23:3000 中有一个 Node js 应用程序我想从我的本地 express/node 应用程序脚本连接到我的远程 mongodb 数据库。数据库在上面提到的 IP 中运行,但由于某种原因,我所能做的就是连接到我的本地 mongodb 数据库。

if (app.get('env') === 'development') {
    app.use(function (err, req, res, next) {
        res.status(err.status || 500);
        res.render('error', {
            message: err.message,
            error: err
        });
    });

    mongoose.connect('mongodb://localhost/test');
}

上面的代码在我的 app.js 中,它可以工作,但我想做的是这样的。

if (app.get('env') === 'development') {
    app.use(function (err, req, res, next) {
        res.status(err.status || 500);
        res.render('error', {
            message: err.message,
            error: err
        });
    });

    mongoose.connect('mongodb:111.111.111.23:27017/test');
}

我尝试添加带有和不带有端口的 ip,但它失败了。

我的问题是如何从本地计算机连接到远程数据库?

这就是帮助。远程服务器正在运行 ubuntu server 14.04,我使用本指南安装了 mongodb:https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

我收到以下错误:

错误:连接 ECONNREFUSED 111.111.111.23:27017

最佳答案

Mongoose 连接格式为:

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

如果您没有用户名和密码,只需执行:

mongoose.connect('mongodb://host:port/database');

来源:http://mongoosejs.com/docs/connections.html

您也可以尝试使用 mongo 客户端进行连接,看看是否有效..

$ mongo 111.111.111.23:27017

另外,但不太可能,请确保您的 mongod 服务已启动。

$ sudo service mongod start

最后,请确保您的防火墙已关闭或使用以下命令打开端口:

$ iptables -A INPUT -p tcp --dport 27017 -j ACCEPT

关于node.js - 如何使用 mongo/mongoose 连接远程数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33614229/

相关文章:

javascript - 开始使用node,等待localhost

node.js - 能够为每个BrowserWindow对象创建一个新 session ?

javascript - EJS 逻辑有效,但 html 未显示

mongodb - 如何使用多个目标更新多个文档

angularjs - 在单个 Controller MEAN.IO 中使用多个模型

mysql - 重置 MySQL 自动增量作为 Node.js 单元测试中的拆卸步骤

javascript - mongoose.js Model.remove 仅在循环内有效一次

node.js - MongoDB - 两个按顺序更新彼此重叠

node.js - 在 Node Express 中包含自定义模块

node.js - 在 ExpressJS 中组合来自多个文件的路由?