Apprends à lancer un serveur Hono en TypeScript en dix lignes seulement. Suis la bonne pratique pour un backend léger, prêt pour routes, auth et IA.
Tu veux juste répondre "Comment je démarre un serveur Hono maintenant ?".
Voici le listing complet du fichier. Il tient sur dix lignes actives :
1import { serve } from "@hono/node-server";2import "dotenv/config";3import { Hono } from "hono";4import { getCookie } from "hono/cookie";5import Dashboard from "./components/Dashboard.js";6import GenerateImageForm from "./components/GenerateImageForm.js";7import LandingPage from "./components/LandingPage.js";8import Layout from "./components/Layout.js";9import RegisterForm from "./components/RegisterForm.js";10import { parseEnv } from "./env.js";11import auth from "./routes/auth.js";12import imageGeneration from "./routes/image-generation.js";13import users from "./routes/users.js";14import { getAllTokens, getExistingToken } from "./token.js";15import { TOKEN_COOKIE_NAME } from "./utils/cookie-utils.js";1617parseEnv();1819const app = new Hono();2021/* --- next snippet --- */2223serve(24{25fetch: app.fetch,26port: 3000,27},28(info) => {29console.log(`Server is running on http://localhost:${info.port}`);30},31);
import { serve } from "@hono/node-server";
Hono fournit son propre utilitaire serve
.
Pourquoi ? Tu évites la configuration d’un serveur HTTP bas-niveau.
import "dotenv/config";
Charge tes variables d’environnement avant toute exécution.
Rappel : place un fichier .env
à la racine pour stocker tes secrets.
import { Hono } from "hono";
Instancie le micro-framework.
Hono expose une API minimaliste façon Express mais plus rapide.
Tu vois passer :
./components/...
pour tes vues HTMX/Tailwind../routes/...
pour tes routeurs modulaires../token.js
et cookie-utils.js
pour la gestion d’authentification.Ces lignes n’augmentent pas la complexité du serveur principal : elles organisent seulement le code.
parseEnv();
Valide et charge tes variables.
Astuce : ici la fonction vient de ./env.js
et peut utiliser Zod pour typage.
const app = new Hono();
Tu crées l’instance de l’application.
C’est le point d’entrée où tu pluggeras middlewares et routes.
serve({ fetch: app.fetch, port: 3000 }, callback);
1serve(2{ fetch: app.fetch, port: 3000 },3(info) => {4console.log(`Server is running on http://localhost:${info.port}`);5},6);
Explications rapides :
fetch
: Hono s’appuie sur l’API Fetch standard, donc pas besoin de req
, res
.port
: choisis le 3000, classique pour dev.Pluge tes routes :
1app.route("/auth", auth);2app.route("/users", users);3app.route("/generate", imageGeneration);
Pourquoi ?
app
si tu veux écrire des tests e2e avec Supertest ou Vitest.serve
suffit à monter le serveur.Testez vos connaissances avec 4 questions
Quel est le principal avantage d’utiliser la fonction "serve" importée depuis "@hono/node-server" dans le fichier server.ts ?
À quoi sert la ligne "import 'dotenv/config';" placée en tout début de fichier ?
Pourquoi appelle-t-on la fonction "parseEnv();" juste avant d’instancier l’application Hono ?
Quelles raisons expliquent l’utilisation de "app.route('/auth', auth);", "app.route('/users', users);" et "app.route('/generate', imageGeneration);" dans le serveur Hono ?
Sélectionnez toutes les réponses qui s'appliquent