Sudah ada banyak perpustakaan dan rangka kerja bahagian belakang untuk Node.js di pasaran. Saya telah menggunakan Nest.js untuk beberapa projek kecil sebelum ini. Ia mempunyai fungsi yang komprehensif dan membolehkan pelaksanaan projek yang cepat. Walau bagaimanapun, untuk projek kecil saya, banyak cirinya benar-benar berlebihan, dan ia mempunyai tahap enkapsulasi yang tinggi, meninggalkan sedikit kebebasan semasa menulis kod.
Kebetulan saya terjumpa Hono dalam talian. Selepas membaca dokumentasinya:
Hono ialah rangka kerja aplikasi web yang ringkas, serupa dengan Express, tetapi tanpa bahagian hadapan. Ia membolehkan anda membina aplikasi yang lebih besar apabila digabungkan dengan perisian tengah. Berikut ialah beberapa contoh kes penggunaan:
Bagus, mari kita mula mempelajarinya.
https://hono.dev/docs/getting-started/basic
Anda boleh mengubah suai port dengan menetapkan port.
import { Hono } from 'hono'; const app = new Hono(); app.get('/', (c) => { return c.text('Hello Hono!'); }); export default app;
Untuk melaksanakan:
npm run dev
Untuk mengakses: 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);
BasePath("/api") sebelumnya menambahkan awalan /api pada semua laluan.
export const route1 = new Hono() .post("/", async (c) => { return c.json({ }); });
Anda boleh mengakses laluan di atas melalui 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}`); });
Lihat hasilnya: 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); });
Selain text(), terdapat banyak kaedah seperti json(), html(), notFound(), redirect(), dll., untuk membuat permintaan mengembalikan jenis data yang berbeza. html() boleh terus mengembalikan JSX.
import { Hono } from 'hono'; const app = new Hono(); app.get('/', (c) => { return c.text('Hello Hono!'); }); export default app;
Hanya tukar sambungan fail kepada .tsx dan anda boleh terus menulis JSX, sangat seperti React.
Pengesah dilaksanakan melalui zod dan @hono/zod-validator untuk menyemak sama ada permintaan yang dihantar daripada pelanggan mematuhi format data yang ditentukan.
Pemasangan: benang tambah zod @hono/zod-validator
Contohnya, jika kami perlu mengesahkan bahawa dalam permintaan, format data yang dihantar oleh pelanggan mestilah:
akaun: rentetan; kata laluan: rentetan
npm run dev
Ketahui lebih lanjut daripada dokumentasi zod. Dan IDE boleh terus menunjukkan petunjuk jenis untuk pengguna.
Akhir sekali, izinkan saya memperkenalkan platform yang sangat sesuai untuk menggunakan aplikasi Hono: Leapcell.
Leapcell ialah platform tanpa pelayan dengan ciri-ciri berikut:
Teroka lebih lanjut dalam dokumentasi!
Twitter Leapcell: https://x.com/LeapcellHQ
Atas ialah kandungan terperinci Hono.js: Rangka Kerja Node.js Generasi Seterusnya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!