Maison >interface Web >js tutoriel >Hono.js : le framework Node.js de nouvelle génération
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 :
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 :
Super, commençons à l'apprendre.
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
app.get('/', (c) => c.text('GET /')); app.post('/', (c) => c.text('POST /')); app.put('/', (c) => c.text('PUT /')); app.delete('/', (c) => c.text('DELETE /'));
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.
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
app.put("/posts/:id{[0-9]+}", async (c) => { const data = await c.req.json(); return c.json(data); });
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.
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.
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.
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 :
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!