Next.js提供api接口

news/2025/3/15 0:25:30/

看react官网在推Next.js,所以简单学习了解一下

DEMO

   使用cna官方脚手架(13+版本)初始化项目以后目录如下:
在这里插入图片描述
可以看出,初始项目只有一个根路由页面page.tsx,想要增加一个纯粹的api route可以在app/目录下创建api/xxx/route.ts。即可访问api/xxx接口

export async function GET() {return Response.json({ message: "Hello World" });
}

api接口类型

可以通过定义函数名直接指定接口类型

route.ts

export async function GET(request: Request) {}export async function HEAD(request: Request) {}export async function POST(request: Request) {}export async function PUT(request: Request) {}export async function DELETE(request: Request) {}export async function PATCH(request: Request) {}// If `OPTIONS` is not defined, Next.js will automatically implement `OPTIONS` and set the appropriate Response `Allow` header depending on the other methods defined in the Route Handler.
export async function OPTIONS(request: Request) {}

参数类型

接口函数支持两个入参

import type { NextRequest } from 'next/server'export async function GET(request: NextRequest,{ params }: { params: Promise<{ team: string }> }
) {const { team } = await params
}

request

包括cookiesquerybodyrequest对象信息
在这里插入图片描述

context

context: {params: Promise<[x: string]: any>}
params是一个Promise类型的动态路由参数对象

ExampleURLparams
app/dashboard/[team]/route.js/dashboard/1Promise<{ team: ‘1’ }>
app/shop/[tag]/[item]/route.js/shop/1/2Promise<{ tag: ‘1’, item: ‘2’ }>
app/blog/[…slug]/route.js/blog/1/2Promise<{ slug: [‘1’, ‘2’] }>

详细配置参考

  • https://nextjs.org/docs/app/building-your-application/routing/route-handlers
  • https://nextjs.org/docs/app/api-reference/file-conventions/route

http://www.ppmy.cn/news/1579179.html

相关文章

Qt开源控件库(qt-material-widgets)的编译及使用

项目简介 qt-material-widgets是一个基于 Qt 小部件的 Material Design 规范实现。 项目地址 项目地址&#xff1a;qt-material-widgets 本地构建环境 Win11 家庭中文版 VS2019 Qt5.15.2 (MSVC2019) 本地构建流程 克隆后的目录结构如图&#xff1a; 直接使用Qt Crea…

手写Tomcat

手写Tomcat Tomcat详解划分结构详解结构代码示例reqHttpServletRequestHttpServletResponse Servlet 接口GenericServlet 抽象类HttpServlet 抽象类Util 工具包ResponseUtilSearchClassUtilWebservlet 注解 webapps.mywebLoginServletShowServlet ServletConfigMappingMyTomcat…

Qt常见面试题合集

零、基本概念 什么是信号槽? 信号槽类似于软件设计模式中的观察者模式&#xff0c;&#xff08;观察者模式是一种对象行为模式。它定义对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。&#xf…

[项目]基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信

基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信 一.Si24Ri原理图二.Si24R1芯片手册解读三.驱动函数讲解五.移植2.4g通讯&#xff08;飞控部分&#xff09;六.移植2.4g通讯&#xff08;遥控部分&#xff09; 一.Si24Ri原理图 Si24R1芯片原理图如下&#xff1a; 右侧为晶振。 模块…

@Async注解在SpringBoot项目中的使用

一、Async 的核心机制 1. 基本用法 通过 Async 注解标记方法&#xff0c;Spring 会自动将该方法的执行提交到线程池&#xff0c;实现异步调用&#xff1a; Service public class MyService {Asyncpublic void asyncTask() {// 异步执行的代码&#xff08;如发送邮件、处理文…

Synology 部署的 WordPress 無法升級至最新版本時,可以透過以下改良版指南進行排查和解決。

當 Synology 部署的 WordPress 無法升級至最新版本時&#xff0c;可以透過以下改良版指南進行排查和解決。我對內容進行了補充和重新組織&#xff0c;希望能幫助你更高效地處理這類問題&#xff1a; 權限相關問題處理 檢查文件和目錄權限&#xff1a; 確保 WordPress 安裝目錄…

C语言练习四(vscode)循环语句专练

一、用循环验证用户输入的数字 #include<stdio.h> int main(){int num;printf("请您猜一个正整数:");scanf("%d",&num);while (num>0&&num<100){if (num65){printf("恭喜您猜对了。");break;}else{printf("您猜错…

深度评测DeepSeek、ChatGPT O1和谷歌Gemini AI应用开发场景 - DeepSeek性能完胜!

下面我会展示我为期一周的实验结果&#xff0c;创作不宜&#xff0c;希望大家关注我&#xff0c;以后多多互3&#xff01;前一阵我在互联网上看到很多关于DeepSeek R1的讨论&#xff0c;这个开源模型据说可以媲美&#xff0c;甚至优于像OpenAI o1这样的付费模型。 由于我在日常…