Actualmente estoy trabajando con Deno (marco de Oak) y quería saber cuál es la diferencia entre usar ctx.cookies de Oak ( https://github.com/oakserver/oak/blob/main/cookies.ts ) vs algo de La biblioteca estándar de Deno ( setCookies , getCookie y deleteCookie de https://deno.land/std@0.120.0/http/cookie.ts ).
Aunque el marco de Oak proporciona métodos para trabajar con cookies, ¿cuáles son los pros y los contras a considerar entre los dos? ¿HAY alguna razón para usar std lib sobre los métodos de oak incluso cuando se usa el marco?
En resumen: si usa Oak, use los métodos provistos por Oak a menos que tenga una razón específica para no hacerlo. (Será evidente si alguna vez te encuentras con tal escenario).
La función setCookie de deno.land/std/http simplemente agrega un nuevo encabezado Set-Cookie a un objeto Headers existente. Puedes usar esto con Oak:
const cookie = {name: 'cookie_name' value: 'cookie_value'}; setCookie(ctx.response.headers, cookie); El método set en ctx.cookies (que es una instancia de la clase Cookies ) de deno.land/x/oak le permite operar directamente en las cookies en el context de solicitud-respuesta actual:
await ctx.cookies.set('cookie_name', 'cookie_value'); Al usarlo, no necesita pasar manualmente una referencia a un objeto de Headers existente (porque ya es parte del objeto de respuesta de contexto). Este tipo de abstracción de alto nivel significa que no tiene que administrar (o necesariamente pensar en) tantas partes discretas. Oak proporciona abstracciones adicionales cuando se trabaja con cookies, como firmas criptográficas . La documentación cubre los detalles.