Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 클로저
- ESLint
- url #querystring
- TypeScript
- this
- 기후변화
- OOP
- lightsail nodejs apache
- git pair
- NPM
- jest
- #cloudfront #s3 #html 확장자 없애기
- 객체참조 #객체
Archives
- Today
- Total
Hello World...
Next.js v15 기준 서버 컴포넌트에서 쿼리 파라미터 접근하기 본문
쿼리 파라미터에 접근하려면 클라이언트 컴포넌트에서 useSearchParams 를 사용하면 된다.
서버 컴포넌트에서 접근하려면 미들웨어를 이용해야 한다.
src/middleware.ts
import { NextRequest, NextResponse } from 'next/server';
export function middleware(request: NextRequest) {
const requestHeaders = new Headers(request.headers);
requestHeaders.set('x-pathname', request.nextUrl.pathname);
// 쿼리 파라미터도 헤더에 추가
requestHeaders.set('x-search-params', request.nextUrl.search);
return NextResponse.next({
request: {
headers: requestHeaders,
},
});
}
sample/page.tsx
import { redirect } from 'next/navigation';
import { headers } from 'next/headers';
const SamplePage = async () => {
const headersList = await headers();
// ?from=abc 형식으로 들어옴
const searchParams = headersList.get('x-search-params') || '';
const baseUrl = 'https://abc.com';
const redirectUrl = searchParams
? `${baseUrl}${searchParams}`
: baseUrl;
redirect(redirectUrl);
};
export default SamplePage;
참고
Comments