如何将带有 Mongodb 的 Next.js 应用程序部署到 Heroku?

Posted

技术标签:

【中文标题】如何将带有 Mongodb 的 Next.js 应用程序部署到 Heroku?【英文标题】:How can i deploy a Next.js app with Mongodb to heroku? 【发布时间】:2020-12-07 10:57:16 【问题描述】:

我一直在尝试将带有 mongoDb 的 Next.js 应用程序部署到 heroku 平台,但没有成功。它成功构建,没有任何错误,但由于某些原因,我的应用程序无法运行。我检查了我的 heroku 日志,发现了这个错误消息。

2020-08-17T21:09:10.846691+00:00 app[web.1]: FetchError: request to http://localhost:3000/api/notes/favicon.ico failed, reason: connect ECONNREFUSED 127.0.0.1:3000

主页会显示出来,我可以导航到不同的路线。但是没有显示应该来自 mongoDb 的数据。我无法执行任何 CRUD 操作。我在主页和控制台中收到 500 内部服务器错误

我对此问题进行了很多研究,但我无法提出解决方案。这是我与我的 mongoDb 建立连接的地方。我还在 heroku GUI 中添加了我的配置变量。

import mongoose from 'mongoose'

const connection = 

const dbConnect = async () => 
if (connection.isConnected) 
  return
 
 const db = await mongoose.connect(process.env.MONGO_URI, 
   dbName: process.env.DB_NAME,
   user: process.env.DB_USER,
   pass: process.env.DB_PASS,
   useNewUrlParser: true,
   useUnifiedTopology: true
 )

 connection.isConnected = db.connections[0].readyState
 console.log(connection.isConnected, 'Db connected')


export default dbConnect

请问我做错了什么?

【问题讨论】:

【参考方案1】:

确保你更新你的连接链接到 mongodb URL,而不是你本地主机上的 mongodb...用你的 mongodb url 的链接更新 .env 文件中的 MONGO_URI 变量

【讨论】:

以上是关于如何将带有 Mongodb 的 Next.js 应用程序部署到 Heroku?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Next.js/React 中使用带有 @prismicio/client 库的时间线参考

使用 Next.js 10 TypeScript 项目缓存 MongoDb 连接 - API 路由

LMS 中单个学生的 Next.js/Mongodb 分配状态

如何在带有 TypeScript 的 next.config.js 中使用 i18n 和 next/image?

next.js 我不知道如何将全局 .container css 样式应用到其他页面

将 Next.js 部署到 Apache 服务器