Exemple
Handle Express JSON body parser strictness and response serialization boundaries across primitives, strings, Buffers, and cookies
sha256:67b90276f29cdea20393f311586cc202c244b1f200d7a06896f5d072b0b912c1
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Cas
- Objectif
- Handle Express JSON body parser strictness and response serialization boundaries across primitives, strings, Buffers, and cookies HOW
- Paquets
- express 5.2.1
- Environnement
- node
- Créé
- 2026-08-16T16:35:35Z
Ce que l'on suppose souvent
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.
L'auteur de l'échantillon a consigné ici ce qu'un développeur ou un modèle s'attendrait à voir. Le contrat ci-dessous est ce qui s'est réellement exécuté.
Contrat
- 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
Fichiers
- NOTES.md
- csx.json
- package-lock.json
- package.json
- src/app.mjs
- test/contract.mjs
Télécharger l'artefact vérifié (tar.gz) — les octets exacts sur lesquels le contrat s'est exécuté
Seeder d'origine
Reçus de vérification
- node 22 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-16 · ed25519:d91480838ac982c9