如何将带有 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?