【问题标题】:can't connect to mongodb-atlas with node.js on heroku无法在 heroku 上使用 node.js 连接到 mongodb-atlas
【发布时间】:2019-12-16 01:17:34
【问题描述】:

无法从部署到 Heroku 的节点应用程序向 MongoDB Atlas DB 发出请求。它在我的本地主机上运行良好,但在生产方面存在一些问题。

我将连接 URI 添加到 Heroku 中的配置变量:

MONGODB_URI mongodb+srv://asd:asdasd@cluster0-rdame.mongodb.net/myDb?retryWrites=true&w=majority

const MongoClient = require("mongodb").MongoClient;
 const client = await new MongoClient(process.env.MONGODB_URI,{ useNewUrlParser: true});
 client.connect();
mongoose.connection.once('open', () => { console.log('MongoDB Connected'); });
mongoose.connection.on('error', (err) => { console.log('MongoDB connection error: ', err); });

当我做一些获取或发布请求时,控制台会给我这个:

2019-08-08T08:32:02.811420+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/branches" host=mighty-sierra-48879。 herokuapp.com request_id=0b3c6788-644b-4d9c-87ac-49edee07ba1c fwd="109.75.35.153" dyno=web.1 connect=1ms service=30000ms stat us=503 字节=0 协议=https

【问题讨论】:

    标签: node.js heroku deployment mongodb-atlas


    【解决方案1】:

    好的,我找到了解决方案。 它没有连接到数据库,因为我的代码错误

    我写

    mongoose.connect(process.env.MONGODB_URI, {useNewUrlParser: true});
    const conn = mongoose.connection;
    mongoose.connection.once('open', () => { console.log('MongoDB Connected'); });
    mongoose.connection.on('error', (err) => { console.log('MongoDB connection error: ', err); }); 
    

    代替:

    const MongoClient = require("mongodb").MongoClient;
     const client = await new MongoClient(process.env.MONGODB_URI,{ useNewUrlParser: true});
     client.connect();
    mongoose.connection.once('open', () => { console.log('MongoDB Connected'); });
    mongoose.connection.on('error', (err) => { console.log('MongoDB connection error: ', err); }); 
    

    一切正常

    【讨论】:

      猜你喜欢
      • 2019-10-17
      • 2019-10-31
      • 2020-10-07
      • 2019-12-14
      • 2020-10-15
      • 2011-11-26
      • 2020-02-22
      • 2020-07-25
      • 2022-01-18
      相关资源
      最近更新 更多