rsnext/errors/middleware-parse-user-agent.mdx
Delba de Oliveira 44d1a1cb15
docs: Migrate error messages to MDX and App Router. (#52038)
This PR is part of a larger effort to migrate error messages to MDX and
use App Router: https://github.com/vercel/front/pull/23459
2023-07-05 06:11:16 -07:00

34 lines
1 KiB
Text

---
title: Removed parsed User Agent from Middleware API
---
## Why This Error Occurred
Your application is interacting with `req.ua` which has been deprecated.
```ts filename="middleware.ts"
import { NextRequest, NextResponse } from 'next/server'
export function middleware(request: NextRequest) {
const viewport = request.ua.device.type === 'mobile' ? 'mobile' : 'desktop'
request.nextUrl.searchParams.set('viewport', viewport)
return NextResponse.rewrites(request.nextUrl)
}
```
## Possible Ways to Fix It
The internal logic has been moved into a separate `userAgent` function that you can import from `next/server` and wrap your request instead.
```ts filename="middleware.ts"
import { NextRequest, NextResponse, userAgent } from 'next/server'
export function middleware(request: NextRequest) {
const { device } = userAgent(request)
const viewport = device.type === 'mobile' ? 'mobile' : 'desktop'
request.nextUrl.searchParams.set('viewport', viewport)
return NextResponse.rewrite(request.nextUrl)
}
```