ស្គាល់ Hono JS ទេ? Web Framework ល្បឿនលឿន និងស្រាលបំផុតសម្រាប់ Node.js និង Cloudflare Workers
ស្វែងយល់ពី Hono JS ដែលជា Web Framework ជំនាន់ថ្មី មានទំហំតូច ល្បឿនលឿនខ្លាំង និងអាចដំណើរការបាននៅលើគ្រប់ JavaScript Runtime ទាំងអស់ ទាំង Node.js, Bun, និង Cloudflare Workers។
បើនិយាយពី Web Framework នៅក្នុងពិភព JavaScript/TypeScript យើងភាគច្រើនប្រាកដជាគិតដល់ Express JS, Fastify ឬ NestJS មុនគេ។ ប៉ុន្តែនៅក្នុងសម័យកាលនៃ Edge Computing និង Serverless នេះ យើងត្រូវការ Framework ណាដែលមានទំហំកាន់តែតូច និងចាប់ផ្តើមដំណើរការ (Cold Start) បានលឿនបំផុត។
នោះហើយជាមូលហេតុដែល Hono JS ត្រូវបានបង្កើតឡើង និងកំពុងទទួលបានការពេញនិយមយ៉ាងខ្លាំងពីសំណាក់ Developer នាពេលបច្ចុប្បន្ន។
អ្វីទៅជា Hono JS?
Hono (មានន័យថា "ភ្លើង" ជាភាសាជប៉ុន) គឺជា Web Framework មួយប្រភេទដែលតូច ស្រាល និងលឿនខ្លាំង។ លក្ខណៈពិសេសដាច់គេរបស់វាគឺ "Run on anything" មានន័យថាអ្នកអាចសរសេរកូដតែម្តង ប៉ុន្តែអាចយកទៅ Run បាននៅលើគ្រប់ Runtime ទាំងអស់ រាប់ចាប់ពី Node.js, Bun, Deno រហូតដល់ Cloudflare Workers, AWS Lambda និង Vercel Edge Functions។
ចំណុចខ្លាំងរបស់ Hono រួមមាន៖
- ល្បឿនលឿនបំផុត (Ultra-fast): ដោយសារវាប្រើប្រាស់ Regexp Router ផ្ទាល់ខ្លួនដែលមានប្រសិទ្ធភាពខ្ពស់។
- ទំហំតូច (Lightweight): គ្មាន Dependencies ខាងក្រៅឡើយ (Zero 3rd-party dependencies)។
- TypeScript មកស្រាប់ (Built-in TS): ផ្តល់នូវ Type-safety ពេញលេញដោយមិនបាច់ដំឡើងអ្វីបន្ថែម។
ជំហានទី ១៖ ការចាប់ផ្តើមបង្កើតគម្រោង Hono
ដើម្បីបង្កើតគម្រោងថ្មីមួយជាមួយ Hono អ្នកគ្រាន់តែ run បញ្ហាខាងក្រោមនៅលើ Terminal របស់អ្នក៖
npm create hono@latest my-hono-appវានឹងសួរអ្នកឱ្យជ្រើសរើស Runtime (ដូចជា Cloudflare Workers, Node.js, Bun ជាដើម)។ សម្រាប់ field note នេះ យើងជ្រើសរើសយក Cloudflare Workers ឬ Node.js ក៏បាន ព្រោះទម្រង់កូដគឺស្រដៀងគ្នាខ្លាំង។
ជំហានទី ២៖ សរសេរកូដបង្កើត API ដំបូង
នៅពេលបង្កើតរួច សូមបើកមើល file នៅក្នុង src/index.ts អ្នកនឹងឃើញទម្រង់កូដសាមញ្ញ និងស្អាតបែបនេះ៖
import { Hono } from 'hono'
const app = new Hono()
// Basic GET route
app.get('/', (c) => {
return c.text('សួស្តីពី Hono JS!')
})
// API Route ជាមួយ Dynamic Parameter
app.get('/api/users/:id', (c) => {
const userId = c.req.param('id')
return c.json({
status: 'success',
data: { id: userId, name: 'Gavin User' }
})
})
export default appចំណាំ៖ នៅក្នុង Hono យើងប្រើប្រាស់ c (Context) ដែលផ្ទុកទាំង req (Request) និង res (Response) រួមគ្នា ធ្វើឱ្យការហៅប្រើប្រាស់កាន់តែងាយស្រួល។
ជំហានទី ៣៖ ការប្រើប្រាស់ Middleware
Hono មាន Built-in Middleware មកជាមួយស្រាប់ជាច្រើន ដូចជា CORS, Logger, Secure Headers, និង Basic Auth ជាដើម ដោយមិនបាច់ទៅដំឡើង package ផ្សេងៗខាងក្រៅមកនាំតែធ្ងន់ Project ឡើយ។
ឧទាហរណ៍នៃការបើកប្រើប្រាស់ Logger និង CORS៖
import { Hono } from 'hono'
import { logger } from 'hono/logger'
import { cors } from 'hono/cors'
const app = new Hono()
// ហៅប្រើប្រាស់ Middleware នៅកម្រិត Global
app.use('*', logger())
app.use('/api/*', cors())
app.get('/api/data', (c) => {
return c.json({ message: 'ដកស្រង់ទិន្នន័យជោគជ័យ' })
})
export default appជាចុងក្រោយ
បើអ្នកកំពុងស្វែងរក Framework ណាមួយដើម្បីបង្កើត Microservices, REST APIs, ឬចង់ Deploy កូដទៅលើ Serverless/Edge Platforms ដូចជា Cloudflare Workers ដោយចង់បានល្បឿនលឿនបំផុត និងមិនរញ៉េរញ៉ៃច្រើន Hono JS គឺជាជម្រើសដ៏ល្អបំផុតមួយនាពេលបច្ចុប្បន្ន។ វាស្រាល វារហ័ស ហើយវាធ្វើឱ្យរាល់ការបង្កើត API ក្លាយជារឿងរីករាយ!
