如何在nextjs 13中的动态路由中使用路由处理程序?

vd8tlhqk  于 2023-05-28  发布在  其他
关注(0)|答案(1)|浏览(203)

这是我的文件结构:

假设我在本地端口3000上运行它,当我命中localhost:3000/api/create时,/app/api/create/route.js中的路由会处理它并返回正确的响应。但是如果我必须命中localhost:3000/dashboard/api/create,它会返回一个错误,因为动态路由正在处理它,而API路由没有被命中。我的API只返回一个对象{"hello":"world"}作为响应,我的主页和动态页面也很简单。我只想从任何动态路由中访问/api/create API路由。任何帮助将不胜感激,谢谢。
尝试的解决方案:我试过复制API文件夹并将其移动到[...slug]文件夹中,但无济于事。

brvekthn

brvekthn1#

要使localhost:3000/dashboard/api/create工作,您需要一个dir结构,如下所示:

app
├─ [slug]
|    ├─ api
|    |   └─ create
|    |        └─ route.js
|    └─ page.js
...

[...slug]是一个全覆盖段。您将需要使用[slug][[...slug]]作为可选的全部捕获段。
另一点:从他们的文档来看,他们似乎没有在路由中包含“创建”这个词,所以向/dashboard/api发送POST意味着创建。这将使你的目录结构更简洁,因为你可以删除“创建”目录:

app
├─ [slug]
|    ├─ api
|    |   └─ route.js
|    └─ page.js
...

相关问题