MEAN STACK APP部署HEROKU问题 MongoNetworkError: failed to connect to server

Posted

技术标签:

【中文标题】MEAN STACK APP部署HEROKU问题 MongoNetworkError: failed to connect to server【英文标题】:MEAN STACK APP deployment HEROKU issue MongoNetworkError: failed to connect to server 【发布时间】:2020-11-03 08:34:03 【问题描述】:

找不到连接到 MongoDB 以部署应用程序的方法。给我一个错误 " MongoNetworkError: failed to connect to server [localhost:27017] on first connect [Error: connect ECONNREFUSED 127.0.0.1:27017" 什么地方出错了?连接到8080服务器还是报错。

app.js

    const MONGODB_URI = 'mongodb://localhost:27017/members'

    mongoose
      .connect(
        MONGODB_URI,
         useNewUrlParser: true ,
         useMongoClient: true 
      )
      .then(() => console.log('MongoDB Connected'))
      .catch(err => console.log(err))

    var Users = require('./routes/users')

    app.use('/users', Users)
    const Post = require('./model/post')
    //API end point for fetching the list of blog posts. Since for db Mongo is used, Mongoose client added to connect the db with the app.
    app.post('/api/post/getAllPost', (req, res) => 
        mongoose.connect(url,  useMongoClient: true  , function(err)
          console.log(err - 'error here')
            if(err) throw err;
            console.log("connection established successfully")
            Post.find(,[], sort:  _id: -1  ,(err, doc) => 
                if(err) throw err;
                return res.status(200).json(
                    status: 'success',
                    data: doc
                )
            )
        );
    )

    app.listen(port, function() 
      console.log('Server is running on port: ' + port)
    )

【问题讨论】:

【参考方案1】:

首先尝试通过 mongodb compass 社区访问您的数据库,您可能会得到一个连接字符串来本地连接到您的数据库..

mongoose.connect('mongodb://localhost:27017/supercampus?readPreference=primary&appname=MongoDB%20Compass%20Community&ssl=false',
 useNewUrlParser: true,useUnifiedTopology: true ,
(err,res)=>
   if(err) console.log(err)
   else
    console.log("connected")
       
)

对于 heroku 部署,您需要一个免费的在线选项,例如 mongodb atlas

【讨论】:

谢谢。我可以在本地连接,工作得很好。但是远程缺少一些东西 用海龟步移动。我错过了开始路径 /',添加了 app.js 的路径。但是现在出现了一个新错误“MongooseError:mongoose.connect()mongoose.createConnection() 的第三个参数必须是一个函数,得到“对象” 如果本地工作正常,现在尝试访问在线数据库,他们会为您提供 url 字符串以进行连接.. 尝试先使用 compass 社区访问它,然后在 api 中使用它。

以上是关于MEAN STACK APP部署HEROKU问题 MongoNetworkError: failed to connect to server的主要内容,如果未能解决你的问题,请参考以下文章

部署生产 MEAN Stack 应用程序的指南 [关闭]

如何将 MEAN Stack 部署到网络主机

在 Heroku 上部署 MEAN 应用程序时出现应用程序错误

部署 MEAN Stack 应用程序,托管问题

Heroku 上的空白页 - mean.js Angular 应用程序

在将MEAN Stack应用程序部署到AWS EC2时设置环境变量