programmazione:bun:applicazioni_multiple_server
Indice
Creare un server con molte applicazioni con Bun e il framework Express
Andremo ad avviare un server http con bun e il framework Express che avvia piu' di una applicazione collocata in sotto cartelle. Inoltre alla modifica di uno dei file dell'applicazione il server ripartirà automaticamente con le nuove modifiche.
Installazione
bun init bun_app bun add express
Codice principale
index.js
import express from "express"; import app1 from "./apps/app1/index.js"; import app2 from "./apps/app2/index.js"; const app = express(); const PORT = process.env.PORT || 3000; // mount delle sub-app sotto percorsi diversi app.use("/app1", app1); app.use("/app2", app2); app.get("/", (req, res) => { res.send("Hello World!"); }) app.listen(PORT, () => console.log(`Listening on http://localhost:${PORT}`));
apps/app1/index.js
import express from "express"; const app = express(); app.get("/", (req, res) => { res.send("Hello from App1 root"); }); app.get("/prova", (req, res) => { res.send("Prova delle prove"); }); export default app;
apps/app2/index.js
import express from "express"; const app = express(); app.get("/", (req, res) => { res.send("Hello from App2 root"); }); app.get("/prova", (req, res) => { res.send("Prova delle prove app2"); }); export default app;
Avviare il server con il caricamento a caldo degli script:
bun --watch index.ts
Lavorare con i template ejs
Installiamo ejs con bun nel nostro progetto:
bun add ejs
views/index.ejs
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Hello</title> </head> <body> <h1> <%= title%> </h1> <p> <%= message %> </p> <p>Aggiunto a caldo.</p> </body> </html>
Lo utilizzo così:
import express from "express"; import path from "path"; const app = express(); //Ricavo cartella dove è contenuto lo script che sto eseguendo import { fileURLToPath } from "url"; import { dirname } from "path"; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); app.set("view engine", "ejs"); app.set("views", path.resolve(__dirname+"/views/")); app.get("/:user", (req, res) => { res.render("index", { title: "Home", message: `Ciao da ${req.params.user}` }); }); export default app;
programmazione/bun/applicazioni_multiple_server.txt · Ultima modifica: 26/05/2026 11:02 da Fabio Di Matteo
