====== 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: [[https://bun.sh/docs/runtime/http/server|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(`
Bun demo
Ciao da Bun
${elements.map(item => `- ${item}
`).join("")}
`, {
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 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**
Hello
<%= user %>