
- Next.js - Home
- Next.js - Overview
- Next.js - Project Setup
- Next.js - Folder Structure
- Next.js - App Router
- Next.js - Page Router
- Next.js Features
- Next.js - Pages
- Next.js - Data Fetching
- Next.js - ISR
- Next.js - Static File Serving
- Next.js - Pre-Rendering
- Next.js - Partial Pre Rendering
- Next.js - Server Side Rendering
- Next.js - Client Side Rendering
- Next.js Routing
- Next.js - Routing
- Next.js - Nested Routing
- Next.js - Dynamic Routing
- Next.js - Parallel Routing
- Next.js - Imperative Routing
- Next.js - Shallow Routing
- Next.js - Intercepting Routes
- Next.js - Redirecting Routes
- Next.js - Navigation and Linking
- Next.js Configuration
- Next.js - TypeScript
- Next.js - Environment Variables
- Next.js - File Conventions
- Next.js - ESLint
- Next.js API & Backend
- Next.js - API Routes
- Next.js - Dynamic API Routes
- Next.js - Route Handlers
- Next.js - API MiddleWares
- Next.js - Response Helpers
- Next.js API Reference
- Next.js - CLI Commands
- Next.js - Functions
- Next.js - Directives
- Next.js - Components
- Next.js - Image Component
- Next.js - Font Component
- Next.js - Head Component
- Next.js - Form Component
- Next.js - Link Component
- Next.js - Script Component
- Next.js Styling & SEO
- Next.js - CSS Support
- Next.js - Global CSS Support
- Next.js - Meta Data
- Next.js Advanced Topics
- Next.js - Error Handling
- Next.js - Server Actions
- Next.js - Fast Refresh
- Next.js - Internationalization
- Next.js - Authentication
- Next.js - Session Management
- Next.js - Authorization
- Next.js - Caching
- Next.js - Data Caching
- Next.js - Router Caching
- Next.js - Full Route Caching
- Next.js - Request Memoization
- Next.js Performance Optimization
- Next.js - Optimizations
- Next.js - Image Optimization
- Next.js - Lazy Loading
- Next.js - Font Optimization
- Next.js - Video Optimization
- Next.js - Script Optimization
- Next.js - Memory Optimization
- Next.js - Using OpenTelemetry
- Next.js - Package Bundling Optimization
- Next.js Testing
- Next.js - Testing
- Next.js - Testing with Jest
- Next.js - Testing with Cypress
- Next.js - Testing with Vitest
- Next.js - Testing with Playwright
- Next.js Debugging & Deployment
- Next.js - Debugging
- Next.js - Deployment
- Next.js Useful Resources
- Next.js - Interview Questions
- Next.js - Quick Guide
- Next.js - Useful Resources
- Next.js - Discussion
Next.js - NextResponse
The NextResponse
The Next.js NextResponse class extends the native Web Response API to provide additional functionality and methods to handle HTTP responses in Next.js applications.
Syntax
Following is the syntax of NextResponse class:
class NextResponse extends Response { constructor(body?: BodyInit | null, init?: ResponseInit) }
Parameters
The NextRequest class takes two parameters:
- body (optional): The response body
- init (optional): An object containing custom configurations
Return Value
The NextResponse method will return a new NextResponse instance with the following additional methods:
- json(): Returns a JSON response
- html(): Returns an HTML response
- text(): Returns a text response
- redirect(): Redirects the request to a new URL
- status(): Sets the status code of the response
- headers(): Sets the headers of the response
Key Points
- NextResponse API is only available in Edge Runtime
- It Provides enhanced functionality over standard Response object
- The NextResponse class is not available in API Routes (pages/api), only in App Router
Example 1
In the code below, we demonstrate how to use the NextResponse class to return a JSON response in a Next.js application.
// app/api/hello/route.ts import { NextRequest, NextResponse } from 'next/server' export async function GET(request: NextRequest) { return NextResponse.json({ message: 'Hello, World!' }) }
Output

Example 2
In the code below, we demonstrate how to use the NextResponse class to redirect a request to a new URL in a Next.js application.
// app/api/hello/route.ts import { NextResponse } from 'next/server' import { type NextRequest } from 'next/server' export async function GET(request: NextRequest) { // Given an incoming request... const loginUrl = new URL('/login', request.url) // Add ?from=/incoming-url to the /login URL loginUrl.searchParams.set('from', request.nextUrl.pathname) // And redirect to the new URL return NextResponse.redirect(loginUrl) }
Output

Advertisements