Express.js há muito tempo é a escolha preferida de muitos desenvolvedores quando se trata de construir servidores web. Com mais de 30 milhões de instalações semanais, fica claro que o Express se consolidou como um padrão do setor. Mas com o passar do tempo, também passaram os requisitos dos aplicativos da web modernos. Os desenvolvedores agora estão buscando estruturas que não sejam apenas simples, mas também mais robustas, type-safe e mais adequadas para edge computing e ambientes sem servidor.
Ao longo dos anos, frameworks como NestJS, Next.js e Nuxt.js tentaram evoluir e melhorar a experiência do desenvolvedor. Embora essas estruturas sejam poderosas, elas geralmente apresentam uma complexidade significativa ou um processo de configuração pesado, que pode parecer complicado, especialmente para casos de uso mais simples. Às vezes, os desenvolvedores precisam de algo tão simples e leve quanto o Express, mas com recursos modernos.
É aqui que Hono entra em cena.
Hono oferece a simplicidade do Express com os benefícios adicionais de maior desempenho, padrões web modernos e melhor suporte para TypeScript. Neste artigo, compararemos seus conceitos principais, destacaremos as diferenças e mostraremos como Hono pode impulsionar sua experiência de desenvolvimento, especialmente para implantações de borda e sem servidor.
Configurar um servidor básico com Express é simples e Hono compartilha essa simplicidade. Aqui está uma rápida olhada na inicialização de ambas as estruturas:
Expresso -
const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello from Express!'); }); app.listen(3000, () => { console.log('Server is running on http://localhost:3000'); });
Hono -
import { serve } from '@hono/node-server' import { Hono } from 'hono'; const app = new Hono(); app.get('/', (c) => c.text('Hello from Hono!')); serve(app);
Como você pode ver, a estrutura do código é semelhante. As principais diferenças aqui são -
Hono Suporta vários ambientes como Node.js, Deno e até mesmo o navegador. Isso o torna uma ótima opção para desenvolvedores que desejam criar aplicativos que possam ser executados em diversas plataformas. Você pode ver a lista completa de todos os tempos de execução suportados nos documentos do Hono
Assim como o Express, o Hono também possui um excelente sistema de roteamento. Veja como você pode definir rotas em ambas as estruturas:
Expresso -
app.get('/user', (req, res) => { res.send('User page'); });
Hono -
app.get('/user', (c) => c.text('User page'));
Além de ter uma única variável c (contexto) em vez de req e res, o sistema de roteamento no Hono é semelhante ao Express. Você pode definir rotas usando app.get, app.post, app.put, app.delete, etc.
Além disso, como o Hono é otimizado para desempenho, você pode esperar um tratamento de solicitações mais rápido em comparação com o Express.
Express é conhecido por seu sistema de middleware e Hono oferece funcionalidade semelhante. Veja como você pode usar middleware em ambas as estruturas:
Expresso -
app.use((req, res, next) => { console.log('Middleware in Express'); next(); });
Hono -
app.use((c, next) => { console.log('Middleware in Hono'); next(); });
Express usa APIs específicas do Node, como req e res, que são bem conhecidas pela maioria dos desenvolvedores:
Expresso -
app.get('/data', (req, res) => { res.json({ message: 'Express response' }); });
Hono, por outro lado, baseia-se em APIs da Web, como a API Fetch, tornando-o mais preparado para o futuro e mais fácil de adaptar para ambientes de borda.
Hono -
app.get('/data', (c) => c.json({ message: 'Hono response' }));
Essa diferença pode parecer pequena, mas destaca o compromisso da Hono em aproveitar os padrões modernos da web, o que pode resultar em um código mais sustentável e portátil.
Ambas as estruturas oferecem maneiras diretas de lidar com erros. No Express, você normalmente define um middleware de tratamento de erros:
Expresso -
app.use((err, req, res, next) => { res.status(500).send('Something went wrong'); });
Hono oferece uma abordagem semelhante, mantendo as coisas limpas e leves:
Hono -
app.onError((err, c) => { return c.text('Something went wrong', 500); });
No Hono, o tratamento de erros é igualmente fácil, mas vem com o benefício adicional de uma sintaxe mais limpa e melhor desempenho.
Performance é onde Hono realmente supera o Express. Construída pensando na velocidade e nas implantações de ponta, a estrutura leve do Hono supera o Express na maioria dos benchmarks. Eis o porquê:
Em aplicações de desempenho crítico, isso torna o Hono uma escolha atraente.
Hono foi projetado desde o início para ambientes de borda e sem servidor. Ele se integra perfeitamente a plataformas como Cloudflare Workers, Vercel e Deno Deploy. Embora o Express seja mais tradicional e frequentemente combinado com servidores Node.js, o Hono prospera em ambientes distribuídos e modernos.
Se você estiver criando aplicativos que precisam ser executados mais perto do usuário, as APIs Hono podem ser facilmente executadas no limite e oferecerão benefícios significativos em relação ao Express.
Express possui um dos maiores ecossistemas do mundo Node.js. Com milhares de pacotes de middleware e uma enorme comunidade, é uma opção familiar e confiável. No entanto, o ecossistema de Hono está a crescer rapidamente. Sua coleção de middleware está se expandindo e, com foco no desempenho e nos padrões modernos da Web, mais desenvolvedores estão adotando-o para aplicativos de ponta.
Embora você possa perder alguns pacotes Express, a comunidade Hono está ativa e construindo novas ferramentas todos os dias.
Você pode encontrar mais sobre a comunidade e o ecossistema Hono no site da Hono.
A API do Hono foi projetada para ser intuitiva, especialmente para desenvolvedores vindos do Express. Com um padrão de roteamento e middleware semelhante, a curva de aprendizado é mínima. Além disso, Hono se baseia em APIs da Web como Fetch, o que significa que as habilidades que você adquire são portáveis, além do desenvolvimento no lado do servidor, tornando mais fácil trabalhar com plataformas e ambientes modernos.
Hono traz uma nova abordagem para o desenvolvimento web com sua mentalidade que prioriza o desempenho e foco na computação de ponta. Embora o Express seja uma estrutura confiável há anos, a web está mudando e ferramentas como o Hono estão abrindo caminho para a próxima geração de aplicativos.
Se você é um desenvolvedor Express e deseja explorar a computação de ponta e arquiteturas sem servidor, ou deseja uma estrutura mais rápida e moderna, experimente o Hono. Você descobrirá que muitos conceitos são familiares, mas os ganhos de desempenho e a flexibilidade de implantação o deixarão impressionado.
Experimente construir seu próximo projeto com Hono e experimente a diferença por si mesmo. Você pode encontrar recursos e modelos iniciais para ajudá-lo a mudar facilmente do Express.
npm create hono@latest my-app
É isso! Você está pronto para ir. Boa codificação com Hono! Compartilhe comigo sua experiência com Hono nos comentários abaixo, no Twitter ou Github. Eu ficaria feliz em ouvir sua opinião!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3