2026年7月8日 星期三

for next.js:什麼時候用req:Request ,什麼時候用req:NextRequest ?

 不仔細想的話,直接全部都用「req:NextRequest」,
因為 NextRequest extends Request

說明:
-------------------

// NextRequest EXTENDS Request:
// = Request + extra Next.js features
req.nextUrl          // ← parsed URL object (convenient!)
req.nextUrl.searchParams  // ← query params directly
req.nextUrl.pathname      // ← /api/books
req.geo              // ← geo location (Edge only)
req.ip               // ← client IP
req.cookies          // ← cookies helper
  .get('name')
  .set('name', value)
  .delete('name')

-------------------
用Request的時機
-------------

//有query string傳真的時候
export async function GET(req: Request) {

  const url = new URL(req.url)

  const param = url.searchParams.get('keyword')

  // ← manual URL parsing needed

}


export async function POST(req: Request) {

  const body = await req.json()  // ← same on both

  ...

}

export async function POST(req: Request) {

  const { userId, password } = await req.json()

}

-------------
用NextRequest的時候--有query string傳參的時間
--------------

export async function GET(req: NextRequest) {

  const keyword = req.nextUrl.searchParams.get('keyword')

}


export async function POST(req: NextRequest) {

  const body = await req.json()  // ← works perfectly ✓

  const { title, author } = body

}

--------------
以上

0 個意見:

張貼留言

訂閱 張貼留言 [Atom]

<< 首頁