userAgent
userAgent 도우미는 Web Request API (opens in a new tab)를 확장하여 요청의 사용자 에이전트 객체와 상호작용할 수 있는 추가 속성과 메서드를 제공합니다.
middleware.ts
import { NextRequest, NextResponse, userAgent } from 'next/server'
export function middleware(request: NextRequest) {
const url = request.nextUrl
const { device } = userAgent(request)
const viewport = device.type === 'mobile' ? 'mobile' : 'desktop'
url.searchParams.set('viewport', viewport)
return NextResponse.rewrite(url)
}middleware.js
import { NextResponse, userAgent } from 'next/server'
export function middleware(request) {
const url = request.nextUrl
const { device } = userAgent(request)
const viewport = device.type === 'mobile' ? 'mobile' : 'desktop'
url.searchParams.set('viewport', viewport)
return NextResponse.rewrite(url)
}isBot
요청이 알려진 봇으로부터 왔는지를 나타내는 부울 값입니다.
browser
요청에 사용된 브라우저에 대한 정보를 포함하는 객체입니다.
name: 브라우저의 이름을 나타내는 문자열입니다. 식별할 수 없는 경우undefined입니다.version: 브라우저의 버전을 나타내는 문자열입니다. 식별할 수 없는 경우undefined입니다.
device
요청에 사용된 장치에 대한 정보를 포함하는 객체입니다.
model: 장치의 모델을 나타내는 문자열입니다. 식별할 수 없는 경우undefined입니다.type: 장치의 유형을 나타내는 문자열입니다. 가능한 값은console,mobile,tablet,smarttv,wearable,embedded, 또는undefined입니다.vendor: 장치의 제조사를 나타내는 문자열입니다. 식별할 수 없는 경우undefined입니다.
engine
브라우저의 엔진에 대한 정보를 포함하는 객체입니다.
name: 엔진의 이름을 나타내는 문자열입니다. 가능한 값은Amaya,Blink,EdgeHTML,Flow,Gecko,Goanna,iCab,KHTML,Links,Lynx,NetFront,NetSurf,Presto,Tasman,Trident,w3m,WebKit또는undefined입니다.version: 엔진의 버전을 나타내는 문자열입니다. 식별할 수 없는 경우undefined입니다.
os
운영 체제에 대한 정보를 포함하는 객체입니다.
name: 운영 체제의 이름을 나타내는 문자열입니다. 식별할 수 없는 경우undefined입니다.version: 운영 체제의 버전을 나타내는 문자열입니다. 식별할 수 없는 경우undefined입니다.
cpu
CPU 아키텍처에 대한 정보를 포함하는 객체입니다.
architecture: CPU 아키텍처를 나타내는 문자열입니다. 가능한 값은68k,amd64,arm,arm64,armhf,avr,ia32,ia64,irix,irix64,mips,mips64,pa-risc,ppc,sparc,sparc64또는undefined입니다.