Skip to content

Ceci démarre un serveur HTTP écoutant sur le port 3000. Il démontre le routage de base avec un certain nombre de réponses courantes et gère également les données POST depuis des formulaires standards ou en JSON.

Voir Bun.serve pour plus de détails.

ts
const server = Bun.serve({
  async fetch(req) {
    const path = new URL(req.url).pathname;

    // répondre avec text/html
    if (path === "/") return new Response("Welcome to Bun!");

    // redirection
    if (path === "/abc") return Response.redirect("/source", 301);

    // renvoyer un fichier (dans ce cas, *ce* fichier)
    if (path === "/source") return new Response(Bun.file(import.meta.path));

    // répondre avec JSON
    if (path === "/api") return Response.json({ some: "buns", for: "you" });

    // recevoir des données JSON à une requête POST
    if (req.method === "POST" && path === "/api/post") {
      const data = await req.json();
      console.log("Received JSON:", data);
      return Response.json({ success: true, data });
    }

    // recevoir des données POST depuis un formulaire
    if (req.method === "POST" && path === "/form") {
      const data = await req.formData();
      console.log(data.get("someField"));
      return new Response("Success");
    }

    // 404s
    return new Response("Page not found", { status: 404 });
  },
});

console.log(`Listening on ${server.url}`);

Bun édité par www.bunjs.com.cn