相关疑难解决方法(0)

如何使用 Fixie Socks(Heroku 附加组件)通过 mongoose 连接到 mongodb

我有一个在 heroku 上托管的 node.js express api。它通过 mongoose 连接到 mongodb atlas 如下

mongoose.connect(
`mongodb+srv://${process.env.MONGO_USER}:${process.env.MONGO_PWD}@${process.env.MONGO_HOST}/${process.env.MONGO_DEFAULT_DB}?retryWrites=true`, {
  useNewUrlParser: true,
  autoReconnect: true,
  keepAlive: 300000,
  connectTimeoutMS: 300000,
  socketTimeoutMS: 300000
}
)
.then(result => {
  console.log('Connected and listening to requests!');
  app.listen(process.env.PORT || 3000);
.catch(err => console.log(err));
Run Code Online (Sandbox Code Playgroud)

我想对 Heroku 应用程序使用 Atlas MongoDB Cloud 的白名单,而不是向所有人开放访问。Heroku 没有固定的 IP 地址,但通过名为Fixie Socks的附加组件使它们成为可能,该附加组件充当出站流量的代理。

如何使用此附加组件来使连接正常工作?文档给出了几个关于如何连接其他服务和数据库的示例,但在 mongodb 上没有帮助。所有示例都使用 FIXIE_SOCKS_HOST,其中包含 SOCKSV5 代理 URL、用户、密码和端口,但我不知道如何将它与 mongoose.connect 方法结合使用。

之前已经问过这个问题,但是当使用不同的附加组件(Fixie vs Fixie Socks)时,它不起作用。

proxy heroku mongoose mongodb node.js

8
推荐指数
1
解决办法
832
查看次数

如何使用 Node.js 建立到 MongoDB 数据库的 SSH 隧道连接

我的凭据与 Robomongo 完美配合,但我无法与 node.js 建立连接
我曾尝试使用 ssh2 和 tunnel-ssh npm 模块建立连接,但两次都失败了。
- mongo 连接不需要密码
- ssh 连接是使用 pem 密钥建立的

这是我在 ssh2 模块中使用的代码,我可以正确建立隧道,但 mongo 连接失败

var Client = require('ssh2').Client;

var conn = new Client();
conn.on('ready', function() {
    console.log('Client :: ready');
    //mongo connection
        mongoose.connect('mongodb://localhost:27000/');
        var db = mongoose.connection;
        db.on('error', console.error.bind(console, 'connection error:'));
        db.once('open', function() {
            console.log("database connection established");
            var users = db.collection('user');
            var getallUsers = function (date, callback){
                users.find({}).toArray(function(err,data){
                    callback(data);
                })
            };
            getallUsers(null, function (data){
                console.log('data :'+  data);
            });
        });
    //end of …
Run Code Online (Sandbox Code Playgroud)

ssh mongoose mongodb node.js ssh-tunnel

2
推荐指数
1
解决办法
1万
查看次数

如何在本地网络内连接另一台机器mongodb数据库?

我按照这个mongoose文件在这里输入链接描述

mongoose.connect('mongodb://localhost/waterDB');
Run Code Online (Sandbox Code Playgroud)

使用这个,我可以连接本地机器waterDBmongoDB DataBase

我的个人机器本地IP: 192.168.1.5

我的服务器机器本地IP: 192.168.1.100

两台机器都有waterDBDataBase.两个DB都没有用户名和密码

我想连接waterDB我的个人机器内的服务器机器.

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

我尝试: mongoose.connect('mongodb://192.168.1.100:27017/waterDB');

但,

MongoError: failed to connect to server [192.168.1.100:27017] on first connect
at null.<anonymous> (/home/water/node_modules/mongodb-core/lib/topologies/server.js:313:35)
at emitOne (events.js:77:13)
at emit (events.js:169:7)
..........
Run Code Online (Sandbox Code Playgroud)

任何错误的解决方案?

谢谢 (@_@)

mongoose mongodb node.js

2
推荐指数
1
解决办法
8209
查看次数

标签 统计

mongodb ×3

mongoose ×3

node.js ×3

heroku ×1

proxy ×1

ssh ×1

ssh-tunnel ×1