我使用应用程序文件夹中的 Next.js 13 开发了一个待办事项列表应用程序。我使用 Next.js 编写了客户端和服务器端代码。我可以使用读取、创建和删除功能创建、删除和查看待办事项。我不需要添加更新功能。我使用 MongoDB 来存储待办事项。
我在 Vercel 上部署了该应用程序,网址为 https://next-todolist-app.vercel.app/。
但是,有一个问题。当我在本地运行该项目时,创建、删除和读取功能工作正常。但是当我将项目部署到 Vercel 时,只有创建和删除功能有效。
当我在输入字段中输入待办事项的文本并单击创建按钮时,屏幕上没有显示任何内容。但是,当我打开浏览器的开发工具并检查网络选项卡时,我可以看到创建功能已成功执行,并且待办事项已保存在数据库中。同样的情况适用于删除功能,但我不能说同样的情况适用于读取功能。
读取函数在每次删除和创建操作后运行,但它总是返回相同的数据,没有任何错误。它会继续返回相同的数据,直到我重建项目。
我正在使用 Next.js 的 fetch 函数提供的
{ cache: "no-store" }
选项专门用于读取操作,但它没有帮助。
我已经尝试解决这个问题好几天了,但还没有找到解决方案。
有人有想法吗?
我希望读取函数返回最新的数据。
更新:我添加了“export const revalidate = 0;”行到我编写列表服务的route.ts文件,问题就解决了。
代码:https://github.com/aliblackeye/next-todo-app/blob/master/app/api/todos/read/route.ts#LL1
同样的问题,我在构建中将我的 api 路由 ○(静态)
/api/todo
转换为 λ(动态)/api/todo