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
