userAgent

userAgent 辅助工具扩展了 Web Request API,提供额外的属性和方法来与请求中的用户代理对象交互。

import { NextRequest, NextResponse, userAgent } from 'next/server'

export function middleware(request: NextRequest) {
  const url = request.nextUrl
  const { device } = userAgent(request)

  // device.type can be: 'mobile', 'tablet', 'console', 'smarttv',
  // 'wearable', 'embedded', or undefined (for desktop browsers)
  const viewport = device.type || 'desktop'

  url.searchParams.set('viewport', viewport)
  return NextResponse.rewrite(url)
}

isBot

布尔值,表示请求是否来自已知的爬虫程序。

browser

包含请求中浏览器信息的对象。

  • name: 字符串,表示浏览器名称,若无法识别则为 undefined
  • version: 字符串,表示浏览器版本,若无法识别则为 undefined

device

包含请求中设备信息的对象。

  • model: 字符串,表示设备型号,若无法识别则为 undefined
  • type: 字符串,表示设备类型,可能值包括:consolemobiletabletsmarttvwearableembeddedundefined
  • vendor: 字符串,表示设备制造商,若无法识别则为 undefined

engine

包含浏览器引擎信息的对象。

  • name: 字符串,表示引擎名称。可能值包括:AmayaBlinkEdgeHTMLFlowGeckoGoannaiCabKHTMLLinksLynxNetFrontNetSurfPrestoTasmanTridentw3mWebKitundefined
  • version: 字符串,表示引擎版本,若无法识别则为 undefined

os

包含操作系统信息的对象。

  • name: 字符串,表示操作系统名称,若无法识别则为 undefined
  • version: 字符串,表示操作系统版本,若无法识别则为 undefined

cpu

包含 CPU 架构信息的对象。

  • architecture: 字符串,表示 CPU 架构。可能值包括:68kamd64armarm64armhfavria32ia64irixirix64mipsmips64pa-riscppcsparcsparc64undefined

On this page