وسيط تجاوز الطريقة (Method Override)
ينفذ هذا الوسيط معالج الطريقة المحددة، التي تختلف عن الطريقة الفعلية للطلب، اعتمادًا على قيمة النموذج (form) أو الترويسة أو الاستعلام (query)، ويُرجع استجابته.
Import
import { Hono } from 'hono'
import { methodOverride } from 'hono/method-override'
الاستخدام
const app = new Hono()
// If no options are specified, the value of `_method` in the form,
// e.g. DELETE, is used as the method.
app.use('/posts', methodOverride({ app }))
app.delete('/posts', (c) => {
// ....
})
على سبيل المثال
نظرًا لأن نماذج HTML لا يمكنها إرسال طريقة DELETE، يمكنك وضع القيمة DELETE في الخاصية المسماة _method وأرسله. والمعالج الخاص بـ app.delete() سيتم تنفيذها.
نموذج HTML:
<form action="/posts" method="POST">
<input type="hidden" name="_method" value="DELETE" />
<input type="text" name="id" />
</form>
التطبيق:
import { methodOverride } from 'hono/method-override'
const app = new Hono()
app.use('/posts', methodOverride({ app }))
app.delete('/posts', () => {
// ...
})
يمكنك تغيير القيم الافتراضية أو استخدام قيمة الرأس (header) وقيمة الاستعلام (query):
app.use('/posts', methodOverride({ app, form: '_custom_name' }))
app.use(
'/posts',
methodOverride({ app, header: 'X-METHOD-OVERRIDE' })
)
app.use('/posts', methodOverride({ app, query: '_method' }))
الخيارات
app: Hono
نسخة من Hono مستخدم في تطبيقك.
form: string
مفتاح النموذج بقيمة تحتوي على اسم الطريقة.
القيمة الافتراضية هي _method.
header: boolean
اسم ترويسة بقيمة تحتوي على اسم الطريقة.
query: boolean
مفتاح معامل الاستعلام (query parameter) بقيمة تحتوي على اسم الطريقة.