Make Hono work on Node.js

Bookmark
Rate this content

El creador de Hono habla sobre Hono. Hono es un marco web que utiliza solo APIs de estándares web y se ejecuta en Cloudflare Workers, Deno y Bun. Ahora, además de esos entornos de ejecución, también se ejecuta en Node.js utilizando un adaptador de Node.js. Sin embargo, hubo algunas dificultades en el camino. En esta sesión, hablaré sobre cómo adaptamos Hono para que funcione en Node.js, mejoramos su rendimiento y la posibilidad de que apoyemos middleware compatible con Connect.

This talk has been presented at Node Congress 2025, check out the latest edition of this JavaScript Conference.

Yusuke Wada
Yusuke Wada
15 min
17 Apr, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La masterclass de hoy trata sobre cómo hacer que Hono funcione en Node.js. Hono es un backend para marcos web que soporta TypeScript. Comenzó como un marco de trabajadores de Cloudflare y ahora soporta múltiples entornos de ejecución. El adaptador de Node.js permite que las aplicaciones Hono se ejecuten en Node.js al convertir las APIs de Node.js en APIs de estándares web. Las pruebas de referencia muestran que Hono es más rápido que Express, pero más lento en algunas áreas clave. El adaptador de Node.js ha sido ampliamente utilizado y ha experimentado mejoras en el rendimiento. En general, agregar soporte para Node.js a Hono ha sido exitoso en alcanzar más usuarios y mejorar la calidad.
Available in English: Make Hono work on Node.js

1. Introducción a Hono

Short description:

Estoy muy emocionado de hablar en Node Congress hoy. Hoy me gustaría hablar sobre cómo hicimos que Hono funcionara en Node.js. Hono es el backend de los frameworks web para JavaScript. Tiene cinco características clave y soporta TypeScript como primera clase. Déjame compartir cómo comencé a construir Hono.

Hola. Estoy muy emocionado de hablar en Node Congress hoy. El título es Hacer que Hono funcione en Node.js. Vamos a continuar. Mi nombre es Yusuke. Me encanta construir frameworks web. Estoy trabajando en Cloudflare como defensor de desarrolladores. Soy el creador de Hono.

Hoy me gustaría hablar sobre cómo hicimos que Hono funcionara en Node.js. Aquí está la agenda de hoy. Primero, hablaré sobre Hono. A continuación, compartiré cómo comenzó Hono. Luego, explicaré cómo hicimos que Hono funcionara en Node.js y las mejoras de rendimiento. Primero, hablaré sobre qué es Hono. Hono es el backend de los frameworks web para JavaScript. Podemos llamar a Hono la próxima generación de express. Utiliza solo estándares web APIs y funciona en Cloudflare, Castino y Node.js, etcétera. Aquí está la aplicación web Hello World usando Hono. Solo una, dos, tres, cuatro líneas, y esta API es súper simple.

Hono tiene cinco características clave. Primero, es muy rápido, y segundo, el tamaño del paquete es pequeño y funciona en múltiples entornos de ejecución, y puedes agregar muchas características fácilmente usando middleware. Por último, Hono soporta TypeScript como primera clase y proporciona una gran experiencia de desarrollador. Hablaré sobre el comienzo de Hono. Déjame compartir cómo comencé a construir Hono. Estamos creando Hono, quería construir una aplicación para Cloudflare workers, pero en ese momento, no podía encontrar un gran framework para mí. Este IttyRooter es tan simple. No tiene suficientes características para mí y este masterclass y Thunder son buenos frameworks, pero no prefiero la API que es similar a express. Así que decidí hacer mi propio framework. Así es como nació Hono. El commit inicial de Hono fue el 15 de diciembre de 2021, luego Hono comenzó.

2. Supporting Multiple Runtimes

Short description:

Hono comenzó como un framework para Cloudflare workers y ahora soporta múltiples entornos de ejecución, incluyendo Dno y BAN. El mismo código puede ejecutarse en Cloudflare y BAN. Convertirse en multi-runtime ha traído más retroalimentación y mejorado la calidad de Hono. A continuación, abordamos el desafío de hacer que Hono funcione en Node.js.

Hace más de tres años. En ese momento, Hono fue construido con WebStandard API y era solo para Cloudflare workers. Así que, realmente no podíamos decir que es multi-runtime aún. Hablaré sobre cómo Hono soporta múltiples entornos de ejecución.

Lanzamos la versión 2 de Hono el 16 de junio de 2022. En la versión 2, Hono comenzó a soportar Dno y BAN. No dijimos que Hono soporta Dno y BAN antes de la versión 2, pero era fácil soportarlos porque tanto Dno como BAN utilizan WebStandard APIs.

Para soportar Dno, necesitamos hacer dos cosas. En Dno, para importar un módulo, tuvimos que agregar una extensión como .ts o .ds, el nombre del módulo. Y segundo, Dno importa módulos usando URLs. Así que, hicimos un paquete de Hono que se puede descargar desde Dno.runx. Soportar BAN fue muy fácil. Después de que BAN se hizo público, alguien creó este problema y ¿hay algún plan para el soporte de BAN.js? Pero no tenemos que hacer nada. Hono simplemente funciona en BAN sin ningún cambio.

Aquí hay algo interesante. El mismo código puede ejecutarse en Cloudflare y BAN. Este ejemplo es solo una aplicación hello world y puedes aprenderlo. Comandos de desarrollo de lenguaje para Cloudflare workers y comando BAN para BAN. Así que, completamente igual para la aplicación hello world que comenzó como Cloudflare workers y BAN. Por lo tanto, podemos decir que Hono es un framework multi-runtime.

Convertirse en multi-runtime tuvo grandes beneficios. Cuando Hono comenzó a soportar multi-runtime, más personas comenzaron a usarlo. Esto significó que obtuvimos más retroalimentación, problemas y casos de uso. Al abordar esto, mejoramos la calidad de Hono. Así que, aprender Hono en multi-runtime ha llevado a muy buenos resultados para nosotros. A continuación, explico el adaptador de Node.js. Después de soportar DNO y BAN en la versión 2, nuestro próximo gran desafío fue hacer que Hono funcionara en Node.js. Porque muchas personas usan Node.js, así que si tiene éxito, Hono alcanzaría a muchos más usuarios. Pero la aplicación Hono no puede ejecutarse en Node.js tal como está. Node.js tiene APIs estándar web como fetch y request response URL y etcétera.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Construyendo Mejores Sitios Web con Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Construyendo Mejores Sitios Web con Remix
Top Content
Remix is a web framework built on React Router that focuses on web fundamentals, accessibility, performance, and flexibility. It delivers real HTML and SEO benefits, and allows for automatic updating of meta tags and styles. It provides features like login functionality, session management, and error handling. Remix is a server-rendered framework that can enhance sites with JavaScript but doesn't require it for basic functionality. It aims to create quality HTML-driven documents and is flexible for use with different web technologies and stacks.
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
Mishko, the creator of Angular and AngularJS, discusses the challenges of website performance and JavaScript hydration. He explains the differences between client-side and server-side rendering and introduces Quik as a solution for efficient component hydration. Mishko demonstrates examples of state management and intercommunication using Quik. He highlights the performance benefits of using Quik with React and emphasizes the importance of reducing JavaScript size for better performance. Finally, he mentions the use of QUIC in both MPA and SPA applications for improved startup performance.
Documentación Full Stack
JSNation 2022JSNation 2022
28 min
Documentación Full Stack
Top Content
The Talk discusses the shift to full-stack frameworks and the challenges of full-stack documentation. It highlights the power of interactive tutorials and the importance of user testing in software development. The Talk also introduces learn.svelte.dev, a platform for learning full-stack tools, and discusses the roadmap for SvelteKit and its documentation.
SolidJS: ¿Por qué tanto Suspense?
JSNation 2023JSNation 2023
28 min
SolidJS: ¿Por qué tanto Suspense?
Top Content
Suspense is a mechanism for orchestrating asynchronous state changes in JavaScript frameworks. It ensures async consistency in UIs and helps avoid trust erosion and inconsistencies. Suspense boundaries are used to hoist data fetching and create consistency zones based on the user interface. They can handle loading states of multiple resources and control state loading in applications. Suspense can be used for transitions, providing a smoother user experience and allowing prioritization of important content.
De GraphQL Zero a GraphQL Hero con RedwoodJS
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
De GraphQL Zero a GraphQL Hero con RedwoodJS
Top Content
Tom Pressenwurter introduces Redwood.js, a full stack app framework for building GraphQL APIs easily and maintainably. He demonstrates a Redwood.js application with a React-based front end and a Node.js API. Redwood.js offers a simplified folder structure and schema for organizing the application. It provides easy data manipulation and CRUD operations through GraphQL functions. Redwood.js allows for easy implementation of new queries and directives, including authentication and limiting access to data. It is a stable and production-ready framework that integrates well with other front-end technologies.
Es una jungla ahí fuera: ¿Qué está pasando realmente dentro de tu carpeta Node_Modules?
Node Congress 2022Node Congress 2022
26 min
Es una jungla ahí fuera: ¿Qué está pasando realmente dentro de tu carpeta Node_Modules?
Top Content
The talk discusses the importance of supply chain security in the open source ecosystem, highlighting the risks of relying on open source code without proper code review. It explores the trend of supply chain attacks and the need for a new approach to detect and block malicious dependencies. The talk also introduces Socket, a tool that assesses the security of packages and provides automation and analysis to protect against malware and supply chain attacks. It emphasizes the need to prioritize security in software development and offers insights into potential solutions such as realms and Deno's command line flags.

Workshops on related topic

Masterclass de Node.js
Node Congress 2023Node Congress 2023
109 min
Masterclass de Node.js
Top Content
Workshop
Matteo Collina
Matteo Collina
¿Alguna vez has tenido dificultades para diseñar y estructurar tus aplicaciones Node.js? Construir aplicaciones que estén bien organizadas, sean probables y extensibles no siempre es fácil. A menudo puede resultar ser mucho más complicado de lo que esperas. En este evento en vivo, Matteo te mostrará cómo construye aplicaciones Node.js desde cero. Aprenderás cómo aborda el diseño de aplicaciones y las filosofías que aplica para crear aplicaciones modulares, mantenibles y efectivas.

Nivel: intermedio
Construir y Desplegar un Backend Con Fastify & Platformatic
JSNation 2023JSNation 2023
104 min
Construir y Desplegar un Backend Con Fastify & Platformatic
Top Content
WorkshopFree
Matteo Collina
Matteo Collina
Platformatic te permite desarrollar rápidamente GraphQL y REST APIs con un esfuerzo mínimo. La mejor parte es que también te permite desatar todo el potencial de Node.js y Fastify siempre que lo necesites. Puedes personalizar completamente una aplicación de Platformatic escribiendo tus propias características y plugins adicionales. En la masterclass, cubriremos tanto nuestros módulos de Open Source como nuestra oferta en la Nube:- Platformatic OSS (open-source software) — Herramientas y bibliotecas para construir rápidamente aplicaciones robustas con Node.js (https://oss.platformatic.dev/).- Platformatic Cloud (actualmente en beta) — Nuestra plataforma de alojamiento que incluye características como aplicaciones de vista previa, métricas integradas e integración con tu flujo de Git (https://platformatic.dev/). 
En esta masterclass aprenderás cómo desarrollar APIs con Fastify y desplegarlas en la Platformatic Cloud.
Construyendo un Servidor Web Hiper Rápido con Deno
JSNation Live 2021JSNation Live 2021
156 min
Construyendo un Servidor Web Hiper Rápido con Deno
Workshop
Matt Landers
Will Johnston
2 authors
Deno 1.9 introdujo una nueva API de servidor web que aprovecha Hyper, una implementación rápida y correcta de HTTP para Rust. El uso de esta API en lugar de la implementación std/http aumenta el rendimiento y proporciona soporte para HTTP2. En este masterclass, aprende cómo crear un servidor web utilizando Hyper en el fondo y mejorar el rendimiento de tus aplicaciones web.
0 a Auth en una Hora Usando NodeJS SDK
Node Congress 2023Node Congress 2023
63 min
0 a Auth en una Hora Usando NodeJS SDK
WorkshopFree
Asaf Shen
Asaf Shen
La autenticación sin contraseña puede parecer compleja, pero es fácil de agregar a cualquier aplicación utilizando la herramienta adecuada.
Mejoraremos una aplicación JS de pila completa (backend de Node.JS + frontend de React) para autenticar usuarios con OAuth (inicio de sesión social) y contraseñas de un solo uso (correo electrónico), incluyendo:- Autenticación de usuario - Administrar interacciones de usuario, devolver JWT de sesión / actualización- Gestión y validación de sesiones - Almacenar la sesión para solicitudes de cliente posteriores, validar / actualizar sesiones
Al final del masterclass, también tocaremos otro enfoque para la autenticación de código utilizando Flujos Descope en el frontend (flujos de arrastrar y soltar), manteniendo solo la validación de sesión en el backend. Con esto, también mostraremos lo fácil que es habilitar la biometría y otros métodos de autenticación sin contraseña.
Tabla de contenidos- Una breve introducción a los conceptos básicos de autenticación- Codificación- Por qué importa la autenticación sin contraseña
Requisitos previos- IDE de tu elección- Node 18 o superior
Construyendo aplicaciones web que iluminan Internet con QwikCity
JSNation 2023JSNation 2023
170 min
Construyendo aplicaciones web que iluminan Internet con QwikCity
WorkshopFree
Miško Hevery
Miško Hevery
Construir aplicaciones web instantáneas a gran escala ha sido elusivo. Los sitios del mundo real necesitan seguimiento, análisis y interfaces y interacciones de usuario complejas. Siempre comenzamos con las mejores intenciones pero terminamos con un sitio menos que ideal.
QwikCity es un nuevo meta-framework que te permite construir aplicaciones a gran escala con un rendimiento de inicio constante. Veremos cómo construir una aplicación QwikCity y qué la hace única. El masterclass te mostrará cómo configurar un proyecto QwikCity. Cómo funciona el enrutamiento con el diseño. La aplicación de demostración obtendrá datos y los presentará al usuario en un formulario editable. Y finalmente, cómo se puede utilizar la autenticación. Todas las partes básicas para cualquier aplicación a gran escala.
En el camino, también veremos qué hace que Qwik sea único y cómo la capacidad de reanudación permite un rendimiento de inicio constante sin importar la complejidad de la aplicación.
De vuelta a las raíces con Remix
React Summit 2023React Summit 2023
106 min
De vuelta a las raíces con Remix
Workshop
Alex Korzhikov
Pavlik Kiselev
2 authors
La web moderna sería diferente sin aplicaciones ricas del lado del cliente respaldadas por potentes frameworks: React, Angular, Vue, Lit y muchos otros. Estos frameworks se basan en JavaScript del lado del cliente, que es su núcleo. Sin embargo, existen otros enfoques para el renderizado. Uno de ellos (bastante antiguo, por cierto) es el renderizado del lado del servidor completamente sin JavaScript. Descubramos si esta es una buena idea y cómo Remix puede ayudarnos con ello?
Prerrequisitos- Buen entendimiento de JavaScript o TypeScript- Sería útil tener experiencia con React, Redux, Node.js y escribir aplicaciones FrontEnd y BackEnd- Preinstalar Node.js, npm- Preferimos usar VSCode, pero también se pueden utilizar IDE en la nube como codesandbox (otros IDE también están bien)