Maison >interface Web >js tutoriel >Hono.js : le framework Node.js de nouvelle génération

Hono.js : le framework Node.js de nouvelle génération

Barbara Streisand
Barbara Streisandoriginal
2025-01-06 22:33:42372parcourir

Hono.js: The Next-Gen Node.js Framework

Pourquoi apprendre Hono

Hono.js: The Next-Gen Node.js Framework

Il existe déjà de nombreuses bibliothèques et frameworks backend pour Node.js sur le marché. J'ai déjà utilisé Nest.js pour quelques petits projets. Il dispose de fonctions complètes et permet une mise en œuvre rapide des projets. Cependant, pour mes petits projets, beaucoup de ses fonctionnalités sont vraiment excessives et il a un niveau d'encapsulation élevé, laissant peu de liberté lors de l'écriture du code.

Par hasard, je suis tombé sur Hono en ligne. Après avoir lu sa documentation :

  • Ultra-rapide ? - Le routeur RegExpRouter est vraiment rapide. Il n'utilise pas de boucles linéaires. C'est juste rapide.
  • Léger ? - Le préréglage hono/tiny fait moins de 12 Ko. Hono n'a aucune dépendance et utilise uniquement des API standards du Web.
  • Multi-runtime ? - Cela fonctionne pour Cloudflare Workers, Fastly Compute@Edge, Deno, Bun, Lagon, AWS Lambda ou Node.js. Le même code s'exécute sur toutes les plateformes.
  • Capable ? - Hono est livré avec un middleware intégré, un middleware personnalisé, un middleware tiers et des assistants. C'est tout compris.
  • Pleasant DX ?️ - Il dispose d'une API super propre et d'un excellent support TypeScript. Maintenant, nous avons des "types".

Cas d'utilisation

Hono est un framework d'application Web simple, similaire à Express, mais sans frontend. Il vous permet de créer des applications plus volumineuses lorsqu'il est combiné avec un middleware. Voici quelques exemples de cas d'utilisation :

  • Construire des interfaces web
  • Proxy du serveur backend
  • Interfaces CDN
  • Applications de pointe
  • Serveurs de base pour bibliothèques
  • Applications full-stack

Super, commençons à l'apprendre.

Bonjour le monde

https://hono.dev/docs/getting-started/basic

Vous pouvez modifier le port en définissant le port.

import { Hono } from 'hono';

const app = new Hono();

app.get('/', (c) => {
    return c.text('Hello Hono!');
});

export default app;

Pour exécuter :

npm run dev

Pour accéder : http://localhost:8787

Itinéraires

Méthodes HTTP

app.get('/', (c) => c.text('GET /'));
app.post('/', (c) => c.text('POST /'));
app.put('/', (c) => c.text('PUT /'));
app.delete('/', (c) => c.text('DELETE /'));

Itinéraires hiérarchiques

const apiRoutes = app
   .basePath("/api")
   .route("/expenses", route1)
   .route("/", route2);

Le basePath("/api") précédent ajoute le préfixe /api à toutes les routes.

export const route1 = new Hono()
   .post("/", async (c) => {
        return c.json({ });
    });

Vous pouvez accéder à l'itinéraire ci-dessus via http://localhost:8787/api/expenses.

Demandes

Obtenir les paramètres de demande et la requête

app.get('/posts/:id', (c) => {
    const page = c.req.query('page');
    const id = c.req.param('id');
    return c.text(`You want see ${page} of ${id}`);
});

Voir le résultat : http://localhost:8787/posts/1?page=12

Obtenez le contenu du corps de la demande

app.put("/posts/:id{[0-9]+}", async (c) => {
    const data = await c.req.json();
    return c.json(data);
});

Réponses

En plus de text(), il existe de nombreuses méthodes comme json(), html(), notFound(), redirect(), etc., pour que la requête renvoie différents types de données. html() peut renvoyer directement JSX.

JSX

import { Hono } from 'hono';

const app = new Hono();

app.get('/', (c) => {
    return c.text('Hello Hono!');
});

export default app;

Changez simplement l'extension du fichier en .tsx et vous pourrez écrire directement du JSX, très proche de React.

Validateurs

Les validateurs sont implémentés via zod et @hono/zod-validator pour vérifier si les requêtes envoyées par le client sont conformes au format de données spécifié.
Installation : fil ajouter zod @hono/zod-validator
Par exemple, si nous devons vérifier cela dans une demande, le format des données envoyées par le client doit être :
compte : chaîne ; mot de passe : chaîne

npm run dev

Apprenez-en plus grâce à la documentation zod. Et l'EDI peut afficher directement des astuces de type pour l'utilisateur.

Leapcell : la plate-forme avancée sans serveur pour l'hébergement Nodejs

Hono.js: The Next-Gen Node.js Framework

Enfin, permettez-moi de vous présenter une plateforme très adaptée au déploiement d'applications Hono : Leapcell.

Leapcell est une plateforme sans serveur présentant les caractéristiques suivantes :

  1. Support multilingue
    • Développer avec JavaScript, Python, Go ou Rust.
  2. Déployez un nombre illimité de projets gratuitement
    • Payez uniquement pour l'utilisation – pas de demandes, pas de frais.
  3. Une rentabilité imbattable
    • Payez à l'utilisation sans frais d'inactivité.
    • Exemple : 25 $ prend en charge 6,94 millions de requêtes avec un temps de réponse moyen de 60 ms.
  4. Expérience de développeur simplifiée
    • Interface utilisateur intuitive pour une configuration sans effort.
    • Pipelines CI/CD entièrement automatisés et intégration GitOps.
    • Mesures et journalisation en temps réel pour des informations exploitables.
  5. Évolutivité sans effort et hautes performances
    • Mise à l'échelle automatique pour gérer facilement une concurrence élevée.
    • Zéro frais opérationnels – concentrez-vous uniquement sur la construction.

Explorez-en davantage dans la documentation !

Twitter de Leapcell : https://x.com/LeapcellHQ

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn