javascript / expert
Snippet
Speicherplatzfreie TypedArray-Subarray-Segmentierung zur Binärframe-Dekodierung in Next.js-Middleware
Dieses Snippet zeigt die effiziente Manipulation von Binärdaten-Puffern in der Next.js-Middleware mittels Uint8Array.prototype.subarray. Im Gegensatz zu slice erzeugt subarray eine neue TypedArray-Ansicht über dem bestehenden ArrayBuffer ohne neuen Heap-Speicher zu allokieren, was eine hochperformante Frame-Header-Analyse ermöglicht.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
export function parseBinaryHeader(uint8Buffer) {const magicHeader = uint8Buffer.subarray(0, 4);const payloadView = uint8Buffer.subarray(4);const isPNG = magicHeader.every((byte, i) => byte === [0x89, 0x50, 0x4e, 0x47][i]);return { isPNG, payload: payloadView };}export function middleware(request) {const headerHeader = request.headers.get('x-binary-payload');if (!headerHeader) return;const rawBytes = Uint8Array.from(Buffer.from(headerHeader, 'base64'));const { isPNG, payload } = parseBinaryHeader(rawBytes);if (!isPNG) return new Response('Invalid Format', { status: 400 });return NextResponse.next();}
nextjs
Erklärung
1
const magicHeader = uint8Buffer.subarray(0, 4);
Erstellt eine überlappende TypedArray-Ansicht ohne Kopieren des zugrundeliegenden Speichers.
2
const isPNG = magicHeader.every((byte, i) => byte === [0x89, 0x50, 0x4e, 0x47][i]);
Wertet Bytewerte direkt über Array-Iterationsmethoden aus.