Back

Erste Schritte mit HonoJS für leichtgewichtige Web-APIs

Erste Schritte mit HonoJS für leichtgewichtige Web-APIs

Der Aufbau moderner Web-APIs sollte keine schwerfälligen Frameworks oder komplexe Konfigurationen erfordern. Wenn Sie nach einer schnellen, leichtgewichtigen Alternative zu Express oder Koa suchen, die auf verschiedenen JavaScript-Laufzeitumgebungen funktioniert, könnte HonoJS genau das sein, was Sie brauchen.

Wichtige Erkenntnisse

  • HonoJS ist ein ultraschnelles Web-Framework, das auf jeder JavaScript-Laufzeitumgebung läuft, einschließlich Node.js, Bun, Deno und Cloudflare Workers
  • Basiert auf Web-Standards wie Request, Response und Fetch API für maximale Portabilität
  • Minimale Bundle-Größe unter 20KB mit besserer Performance als Express
  • Enthält essenzielle Middleware für CORS, Logging und Komprimierung standardmäßig

Was HonoJS besonders macht

HonoJS ist ein kleines, ultraschnelles Web-Framework, das auf Web-Standards basiert. Im Gegensatz zu herkömmlichen Node.js-Frameworks läuft es auf jeder JavaScript-Laufzeitumgebung—Node.js, Bun, Deno, Cloudflare Workers, AWS Lambda und mehr. Diese Portabilität resultiert aus seiner Grundlage auf Standard-Web-APIs wie Request, Response und Fetch.

import { Hono } from 'hono'
const app = new Hono()

app.get('/', (c) => c.text('Hello Hono!'))

export default app

Das ist eine vollständige HonoJS-Anwendung. Kein Boilerplate, keine komplexe Konfiguration—nur sauberes, modernes JavaScript.

Einrichtung Ihrer ersten HonoJS-API

Lassen Sie uns eine einfache REST-API erstellen, um HonoJS in Aktion zu sehen. Erstellen Sie zunächst ein neues Projekt:

npm create hono@latest my-api

Wählen Sie Ihre bevorzugte Laufzeitumgebung (Node.js, Bun oder Cloudflare Workers). Für dieses Beispiel verwenden wir Node.js:

cd my-api
npm install
npm run dev

Ihr Server läuft jetzt unter http://localhost:3000.

REST-Routen mit HonoJS erstellen

HonoJS verwendet eine vertraute Routing-Syntax, die sich natürlich anfühlt, wenn Sie Express verwendet haben:

import { Hono } from 'hono'
const app = new Hono()

// GET-Endpunkt
app.get('/api/users', (c) => {
  const users = [
    { id: 1, name: 'Alice' },
    { id: 2, name: 'Bob' }
  ]
  return c.json(users)
})

// POST-Endpunkt mit JSON-Parsing
app.post('/api/users', async (c) => {
  const body = await c.req.json()
  // In der Produktion in Datenbank speichern
  return c.json({ message: 'User created', data: body }, 201)
})

// Dynamische Routen
app.get('/api/users/:id', (c) => {
  const id = c.req.param('id')
  return c.json({ id, name: 'User ' + id })
})

export default app

Das Context-Objekt (c) stellt alles bereit, was Sie benötigen: Request-Daten, Response-Helfer und Utilities für Header, Cookies und mehr.

Middleware für produktionsreife APIs

HonoJS enthält essenzielle Middleware standardmäßig. So fügen Sie CORS, Logging und Komprimierung hinzu:

import { Hono } from 'hono'
import { cors } from 'hono/cors'
import { logger } from 'hono/logger'
import { compress } from 'hono/compress'

const app = new Hono()

// Middleware anwenden
app.use('*', logger())
app.use('*', cors())
app.use('*', compress())

// Ihre Routen hier
app.get('/api/health', (c) => c.json({ status: 'ok' }))

export default app

Das Erstellen benutzerdefinierter Middleware ist unkompliziert:

// Einfache Auth-Middleware
const authMiddleware = async (c, next) => {
  const token = c.req.header('Authorization')
  if (!token || token !== 'Bearer secret-token') {
    return c.json({ error: 'Unauthorized' }, 401)
  }
  await next()
}

// Auf spezifische Routen anwenden
app.use('/api/protected/*', authMiddleware)
app.get('/api/protected/data', (c) => {
  return c.json({ secret: 'This is protected data' })
})

Laufzeit-Portabilität: Überall deployen

Einer der größten Vorteile von HonoJS ist seine Laufzeit-Flexibilität. Derselbe Code funktioniert auf verschiedenen Plattformen mit minimalen Änderungen:

Für Cloudflare Workers:

export default app

Für Node.js:

import { serve } from '@hono/node-server'
serve({ fetch: app.fetch, port: 3000 })

Für Bun:

export default { port: 3000, fetch: app.fetch }

Das bedeutet, Sie können die Entwicklung lokal beginnen und an Edge-Standorten deployen, ohne Ihre API neu zu schreiben.

Erweiterung mit Datenbankintegration

Hier ist ein kurzes Beispiel mit Drizzle ORM und HonoJS:

import { Hono } from 'hono'
import { drizzle } from 'drizzle-orm/better-sqlite3'
import Database from 'better-sqlite3'
import { postsTable } from './schema'

const sqlite = new Database('app.db')
const db = drizzle(sqlite)

const app = new Hono()

app.get('/api/posts', async (c) => {
  const posts = await db.select().from(postsTable)
  return c.json(posts)
})

app.post('/api/posts', async (c) => {
  const { title, content } = await c.req.json()
  const result = await db.insert(postsTable).values({ title, content })
  return c.json(result, 201)
})

export default app

Performance-Vorteile

HonoJS-APIs übertreffen Express konstant in Benchmarks. Sein minimaler Overhead und die Web-Standards-Grundlage bedeuten schnellere Antwortzeiten und geringeren Speicherverbrauch. Für Edge-Deployments führt die kleine Bundle-Größe (unter 20KB) zu schnelleren Cold Starts.

Fazit

HonoJS bietet einen erfrischenden Ansatz für den Aufbau von Web-APIs. Seine Kombination aus Einfachheit, Performance und Laufzeit-Flexibilität macht es zu einer ausgezeichneten Wahl für moderne JavaScript-Anwendungen. Ob Sie Microservices, Serverless-Funktionen oder traditionelle REST-APIs erstellen—HonoJS bietet die Tools, die Sie benötigen, ohne Ballast.

Beginnen Sie mit einer einfachen API, fügen Sie Middleware nach Bedarf hinzu und deployen Sie überall—das ist der HonoJS-Weg.

Häufig gestellte Fragen

HonoJS zeigt in Benchmarks typischerweise 2-3x bessere Performance als Express aufgrund seines minimalen Overheads und der Web-Standards-Grundlage. Es hat schnellere Antwortzeiten, geringeren Speicherverbrauch und deutlich schnellere Cold Starts für Serverless-Deployments.

Ja, HonoJS funktioniert mit den meisten Node.js-Paketen, wenn es auf Node.js oder Bun läuft. Für Edge-Laufzeitumgebungen wie Cloudflare Workers benötigen Sie jedoch Pakete, die mit Web-Standards kompatibel sind und nicht auf Node.js-spezifische APIs angewiesen sind.

Absolut. HonoJS ist produktionsreif und wird von vielen Unternehmen für APIs verwendet, die Millionen von Anfragen verarbeiten. Seine leichtgewichtige Natur, eingebaute TypeScript-Unterstützung und das umfassende Middleware-Ökosystem machen es ideal für kleine und große Anwendungen.

Die Lernkurve ist minimal. HonoJS verwendet ähnliche Routing-Patterns und Middleware-Konzepte wie Express. Die Hauptunterschiede sind das Context-Objekt anstelle von req/res und die Verwendung von Web-Standards-APIs. Die meisten Express-Entwickler können innerhalb weniger Stunden produktiv mit HonoJS arbeiten.

Gain Debugging Superpowers

Unleash the power of session replay to reproduce bugs, track slowdowns and uncover frustrations in your app. Get complete visibility into your frontend with OpenReplay — the most advanced open-source session replay tool for developers. Check our GitHub repo and join the thousands of developers in our community.

OpenReplay