Skip to content

Bun proporciona una API integrada para trabajar con cookies en solicitudes y respuestas HTTP. El objeto BunRequest incluye una propiedad cookies que proporciona un CookieMap para acceder y manipular cookies fácilmente. Cuando usas routes, Bun.serve() rastrea automáticamente request.cookies.set y las aplica a la respuesta.

Leer cookies

Lee cookies de solicitudes entrantes usando la propiedad cookies en el objeto BunRequest:

ts
Bun.serve({
  routes: {
    "/profile": req => {
      // Acceder a cookies de la solicitud
      const userId = req.cookies.get("user_id");
      const theme = req.cookies.get("theme") || "light";

      return Response.json({
        userId,
        theme,
        message: "Página de perfil",
      });
    },
  },
});

Establecer cookies

Para establecer cookies, usa el método set en el CookieMap del objeto BunRequest.

ts
Bun.serve({
  routes: {
    "/login": req => {
      const cookies = req.cookies;

      // Establecer una cookie con varias opciones
      cookies.set("user_id", "12345", {
        maxAge: 60 * 60 * 24 * 7, // 1 semana
        httpOnly: true,
        secure: true,
        path: "/",
      });

      // Agregar una cookie de preferencia de tema
      cookies.set("theme", "dark");

      // Las cookies modificadas de la solicitud se aplican automáticamente a la respuesta
      return new Response("Inicio de sesión exitoso");
    },
  },
});

Bun.serve() rastrea automáticamente las cookies modificadas de la solicitud y las aplica a la respuesta.

Eliminar cookies

Para eliminar una cookie, usa el método delete en el objeto request.cookies (CookieMap):

ts
Bun.serve({
  routes: {
    "/logout": req => {
      // Eliminar la cookie user_id
      req.cookies.delete("user_id", {
        path: "/",
      });

      return new Response("Sesión cerrada exitosamente");
    },
  },
});

Las cookies eliminadas se convierten en un encabezado Set-Cookie en la respuesta con el maxAge establecido en 0 y un value vacío.

Bun por www.bunjs.com.cn editar