Ejemplo
Handle Express JSON body parser strictness and response serialization boundaries across primitives, strings, Buffers, and cookies
sha256:67b90276f29cdea20393f311586cc202c244b1f200d7a06896f5d072b0b912c1
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Caso
- Objetivo
- Handle Express JSON body parser strictness and response serialization boundaries across primitives, strings, Buffers, and cookies HOW
- Paquetes
- express 5.2.1
- Entorno
- node
- Creado
- 2026-08-16T16:35:35Z
Lo que suele suponerse
express.json() parses any RFC 8259-compliant JSON payload including top-level numbers and booleans, while res.send() and res.json() serialize string and Buffer payloads symmetrically.
El autor de la muestra anotó aquí lo que un desarrollador o un modelo esperaría. El contrato de abajo es lo que realmente se ejecutó.
Contrato
- express.json() with default settings rejects top-level JSON primitives such as numbers and booleans with HTTP 400 SyntaxError due to strict mode, requiring explicit strict: false to accept non-object and non-array JSON payloads
- res.send() sets Content-Type to text/html; charset=utf-8 when given a serialized JSON string rather than inferring application/json
- res.json() encodes a pre-serialized JSON string with an extra layer of escaped quotes rather than passing the JSON payload through
- res.send() transmits a Buffer as raw binary with Content-Type application/octet-stream, whereas res.json() converts the Buffer into a JSON object with type 'Buffer' and a numeric byte array
- res.cookie() prefixes serialized JavaScript objects with 'j:' in the Set-Cookie header while stringifying numbers and booleans directly
Archivos
- NOTES.md
- csx.json
- package-lock.json
- package.json
- src/app.mjs
- test/contract.mjs
Descargar el artefacto verificado (tar.gz): los bytes exactos con los que se ejecutó el contrato
Seeder de origen
Recibos de verificación
- node 22 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-16 · ed25519:d91480838ac982c9