Strumenti Utente

Strumenti Sito


programmazione:bun:http_server_intro

Introduzione al server http nativo di Bun

Autore: Fabio Di Matteo
Ultima revisione: 04/07/2026 15:54

Un web server di prova con codice sparso in piu' file e sistema di template integrato (jsx). Giusto per cominciare. La documentazione ufficiale: Bun http server

main.js

import {lista} from "./lista.js";
 
function echo (s,status=200){
    let myheader={"Content-Type": "text/html; charset=utf-8",}  
    return new Response(s,{headers: myheader, status: status});
}
 
 
 
 
 
function home(){
    return echo("Si, è la home page in html.");
}
 
 
const server = Bun.serve({
  // `routes` requires Bun v1.2.3+
  routes: {
    // Static routes
    "/": home(),
    "/lista": lista(),
  }
});      
console.log(`Server running at ${server.url}`);

lista.js

export function lista(){
  let elements=["Uno", "Due","Tre"];
  return new Response(`
      <!doctype html>
      <html lang="it">
      <head>
        <meta charset="utf-8">
        <title>Bun demo</title>
      </head>
      <body>
        <h1>Ciao da Bun</h1>
        <ul>${elements.map(item => `<li>${item}</li>`).join("")}</ul>
      </body>
      </html>
    `, {
      headers: { "Content-Type": "text/html; charset=utf-8" }
    });
 
 
}

Uso di template ejs

#!/usr/bin/env bun
 
 
import ejs from './ejs/ejs.js';
 
function echo (s,status=200){
    let myheader={"Content-Type": "text/html; charset=utf-8",}  
    return new Response(s,{headers: myheader, status: status});
}
 
 
 
 
 
async function home(){
    const file = Bun.file("views/home.html");
    const s= file.text();
    const template = await Bun.file("./views/home.html").text();
 
      const html = ejs.render(template, {
        user: "Fabio Di Matteo",
      });
    return echo(html);
}
 
 
const server = Bun.serve({
  routes: {
    "/": home,
 
  }
});      
console.log(`Server running at ${server.url}`);

views/home.html

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Hello</title>
</head>
<body>
	<h1><%= user  %> </h1>
</body>
</html>
programmazione/bun/http_server_intro.txt · Ultima modifica: 05/07/2026 11:13 da Fabio Di Matteo