当前位置: 首页> 房产> 政策 > 定制网站制作服务商_短期网页制作培训学校_百度收录技术_网络推广方法技巧

定制网站制作服务商_短期网页制作培训学校_百度收录技术_网络推广方法技巧

时间:2025/8/23 1:25:28来源:https://blog.csdn.net/XiugongHao/article/details/143900742 浏览次数:0次
定制网站制作服务商_短期网页制作培训学校_百度收录技术_网络推广方法技巧

概述

在这里插入图片描述
和前端路由一样,后端路由处理也同样采用约定式路由。比如可以在 /api 目录下定义路由文件。但是要注意:route.ts 和 page.tsx 不可以在同一目录下,因为难以区分是渲染页面还是请求接口。

支持以下 HTTP 方法:GET、POST、PUT、PATCH、DELETE、HEAD 和 OPTIONS。如果调用了不受支持的方法,Next.js将返回 405 Method Not Allowed 响应。

注意,在生产环境下,GET 请求默认会进行缓存(Next14)
,退出(取消)缓存的方式有:

  • 将 Request 对象与 GET 方法一起使用。
  • 使用任何其他 HTTP 方法。
  • 使用 Cookie 和 Headers 等动态函数。
  • Segment Config Options 手动指定动态模式。

而最新的 Next15 版本中,默认情况下,Route Handlers 中的 GET 函数不再缓存。要将 GET 方法选择到缓存中,您可以使用路由配置选项,例如 export const dynamic = ‘force-static’ 在 Route Handler 文件中。

实例

使用 lowdb 模拟后端数据库,进行 CRUD 操作。

在这里插入图片描述
db.ts

import { JSONFilePreset } from 'lowdb/node'// Read or create db.json
const defaultData: { posts: {id: string; title: string; content: string}[]} = { posts: [] }
const db = await JSONFilePreset('db.json', defaultData)export default db;

/api/articles/route.ts

import {NextResponse} from "next/server";
import db from "@/db";// GET => /api/articles
export async function GET(request: Request) {
}// POST => /api/articles
export async function POST(request: Request) {const result = await request.json();await db.update(({posts}) => posts.push({id: Math.random().toString(36).slice(-8),...result}))return NextResponse.json({code: 200,message: "success",data: result});
}

/api/articles/[id]/route.ts

// DELETE => /api/articles/:id
import {NextResponse} from "next/server";
import db from "@/db";export async function DELETE(request: Request, { params }: { params: { id: string } }) {await db.update(({posts}) => {const index = posts.findIndex(post => post.id === params.id);posts.splice(index, 1);})return NextResponse.json({code: 200,message: "success",data: params.id});
}// PATCH => /api/articles/:id
export async function PATCH(request: Request) {}// GET => /api/articles/:id
export async function GET(request: Request) {}

测试:

DELETE http://localhost:3000/api/articles/7ea9w8at
Content-Type: application/json
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.7)
Accept-Encoding: br,deflate,gzip,x-gzip###POST http://localhost:3000/api/articles
Content-Type: application/json
Content-Length: 68
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.5.14 (Java/17.0.7)
Accept-Encoding: br,deflate,gzip,x-gzip{"title": "Test article","content": "This is a test article"
}
关键字:定制网站制作服务商_短期网页制作培训学校_百度收录技术_网络推广方法技巧

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: