En el desenvolupament d’aplicacions web modernes, la validació de dades al perímetre d’entrada és una pràctica essencial que sovint es subestima. Express, el popular framework per a Node.js, no incorpora cap capa de validació per defecte. Els controladors reben directament req.body, req.query i req.params com a cadenes de text, fins i tot quan esperes nombres, identificadors únics o estructures complexes. Aquesta absència de control provoca errors que només es manifesten en lo profund de la lògica de negoci, generant excepcions difícils de rastrejar i una mala experiència per a l’usuari final. Aquí és on entra Zod, una biblioteca d’esquemes que prioritza TypeScript i que permet declarar la forma de les dades una sola vegada, inferir tipus amb z.infer i analitzar les sol·licituds just a la frontera HTTP. D’aquesta manera, els manejadors de rutes només veuen informació vàlida i qualsevol entrada incorrecta es tradueix en un error HTTP 400 abans que el codi executi operacions sensibles.
La versió 4 de Zod introdueix API d’alt nivell com z.email(), z.uuid() i z.coerce() que simplifiquen l’escriptura de validacions. Per exemple, z.coerce.number() resulta especialment útil per a paràmetres de consulta HTTP, ja que aquests arriben sempre com a cadenes i necessiten ser convertits a nombres de forma segura. Tot i que els mètodes de Zod 3 com z.string().email() encara funcionen, estan marcats com a obsolets; la recomanació oficial és migrar a les noves funcions de nivell superior per aprofitar millores en seguretat i rendiment.
Una implementació típica comença definint els esquemes en un fitxer separat, per exemple schemas.ts. Allà es declara un esquema per crear usuaris amb camps com email (usant z.email()), name (amb restriccions de longitud) i age (opcional, enter i en un rang lògic). També es defineixen esquemes per als paràmetres de ruta, com un identificador UUID amb z.uuid(), i per als paràmetres de consulta, on z.coerce.number().int().min(1).max(100).default(10) converteix i valida un límit de paginació. Aquesta aproximació permet que el tipatge de TypeScript es derivi automàticament, reduint la duplicació de codi i els errors de tipus en temps de compilació.
El middleware de validació és el component que connecta els esquemes amb Express. S’implementa una funció validate que rep un objecte amb els esquemes opcionals per a body, query i params. Dins d’ella, cada esquema s’avalua mitjançant safeParse en lloc de parse, perquè així controlem manualment la resposta HTTP i el cos de l’error. Si la validació falla, es retorna un JSON amb format estable utilitzant un helper com formatZodError que extreu la ruta, el missatge i el codi de cada problema. Les dades ja validades s’assignen de tornada: el body se sobreescriu a req.body, mentre que query i params s’emmagatzemen a res.locals per evitar conflictes amb els tipus natius d’Express que tracten aquests objectes com a mapes de cadenes. Aquesta petita decisió de disseny estalvia maldecaps amb TypeScript.
L’enrutament es torna llavors declaratiu i segur. Per exemple, una ruta POST a /users es protegeix amb validate({ body: createUserSchema }) i el manejador rep un req.body tipat com a CreateUserInput. De la mateixa manera, una ruta GET a /users/:id valida el paràmetre de ruta amb validate({ params: userIdParamSchema }) i accedeix al UUID net des de res.locals.params. La mateixa filosofia s’aplica a les consultes, on limit i q es transformen automàticament al tipus esperat.
Entre els errors més comuns en treballar amb Zod i Express destaquen diversos. El primer és oblidar que les query strings són sempre cadenes; usar z.coerce evita sorpreses amb nombres i booleans. El segon és confiar únicament en parse sense capturar l’excepció, cosa que exposa errors interns al client. El tercer és no tenir en compte que els esquemes d’objecte eliminen les claus desconegudes per defecte; si es volen rebutjar camps extra, cal cridar a .strict(). I el quart, potser el més perillós, és assumir que el tipatge de TypeScript és suficient per garantir la seguretat en temps d’execució: la validació al vorell sempre s’ha d’executar, sense importar com d’estrictes siguin els tipus al codi.
Des d’una perspectiva empresarial, la validació robusta amb Zod en Express no només millora la qualitat del programari, sinó que també redueix el temps de depuració i els costos de manteniment. A Q2BSTUDIO, empresa especialitzada en desenvolupament d’aplicacions a mida, incorporem aquestes pràctiques a cada projecte per garantir que els sistemes siguin resilients des del primer moment. Els nostres equips combinen la validació al vorell amb altres estratègies com l’observabilitat, la ciberseguretat i l’ús d’intel·ligència artificial per detectar patrons anòmals al trànsit d’entrada. Per exemple, en construir solucions al núvol amb AWS o Azure, la validació de dades és un pilar per mantenir la integritat dels microserveis i les API.
A més, la integració de Zod amb Express és només una peça de l’ecosistema tecnològic que recomanem. En projectes més complexos, on es manegen grans volums de dades o s’implementen agents d’IA que processen sol·licituds de forma autònoma, tenir una capa de validació forta evita que la lògica de negoci es contamini per entrades malformades. També en contextos de Business Intelligence amb Power BI, on les dades d’entrada han de complir esquemes precisos perquè els informes siguin fiables, la validació primerenca és crítica. Q2BSTUDIO ofereix serveis de consultoria per dissenyar arquitectures que incloguin aquestes pràctiques des de l’inici, ja sigui en migracions al núvol, en la implantació de sistemes de ciberseguretat o en l’automatització de processos mitjançant programari a mida.
En conclusió, Zod 4 proporciona una forma elegant i TypeScript‑nativa de validar sol·licituds HTTP a Express. El seu ús combinat amb un middleware de validació ben dissenyat i un format d’error consistent permet construir API que són segures, previsibles i fàcils de mantenir. Els equips de desenvolupament que adopten aquestes tècniques no només redueixen els bugs en producció, sinó que també milloren l’experiència del desenvolupador i la satisfacció del client. Si estàs buscant implementar una estratègia de validació sòlida al teu projecte, considera comptar amb el suport d’experts. A Q2BSTUDIO oferim acompanyament tècnic en totes les fases del cicle de vida del programari, des del disseny d’esquemes fins al desplegament en entorns cloud, sempre amb un enfocament en la qualitat i la seguretat.





