Skip to content

Bun bietet eine integrierte API zum Arbeiten mit Cookies in HTTP-Anfragen und -Antworten. Das BunRequest-Objekt enthält eine cookies-Eigenschaft, die eine CookieMap für den einfachen Zugriff auf Cookies und deren Manipulation bereitstellt. Bei Verwendung von routes verfolgt Bun.serve() automatisch request.cookies.set und wendet sie auf die Antwort an.

Cookies lesen ​

Lesen Sie Cookies aus eingehenden Anfragen mithilfe der cookies-Eigenschaft des BunRequest-Objekts:

ts
Bun.serve({
  routes: {
    "/profile": req => {
      // Auf Cookies aus der Anfrage zugreifen
      const userId = req.cookies.get("user_id");
      const theme = req.cookies.get("theme") || "light";

      return Response.json({
        userId,
        theme,
        message: "Profilseite",
      });
    },
  },
});

Cookies setzen ​

Um Cookies zu setzen, verwenden Sie die set-Methode auf der CookieMap des BunRequest-Objekts.

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

      // Ein Cookie mit verschiedenen Optionen setzen
      cookies.set("user_id", "12345", {
        maxAge: 60 * 60 * 24 * 7, // 1 Woche
        httpOnly: true,
        secure: true,
        path: "/",
      });

      // Ein Theme-Präferenz-Cookie hinzufügen
      cookies.set("theme", "dark");

      // Geänderte Cookies aus der Anfrage werden automatisch auf die Antwort angewendet
      return new Response("Anmeldung erfolgreich");
    },
  },
});

Bun.serve() verfolgt automatisch geänderte Cookies aus der Anfrage und wendet sie auf die Antwort an.

Cookies löschen ​

Um ein Cookie zu löschen, verwenden Sie die delete-Methode auf dem request.cookies (CookieMap)-Objekt:

ts
Bun.serve({
  routes: {
    "/logout": req => {
      // Das user_id-Cookie löschen
      req.cookies.delete("user_id", {
        path: "/",
      });

      return new Response("Erfolgreich abgemeldet");
    },
  },
});

Gelöschte Cookies werden zu einem Set-Cookie-Header in der Antwort mit maxAge auf 0 gesetzt und einem leeren value.

Bun von www.bunjs.com.cn bearbeitet