Tính tới thời điểm hiện tại (tháng 08/2022), thẻ <form> trong HTML chỉ hỗ trợ hai phương thức HTTP đó là GET và POST.

Chúng ta không có cách nào thực hiện hai phương thức PUT và DELETE để chỉnh sửa và xóa dữ liệu thông qua thẻ <form> của HTML thuần.

Tuy nhiên, có thể thực hiện hai phương thức này bằng cách sử dụng một middleware có tên là method override. Được cài đặt thông qua package method-override.

methodOverride

Middleware method-override cung cấp một phương thức có tên là methodOverride.

Phương thức này sẽ tạo ra một middleware giúp ghi đè phương thức HTTP lên thuộc tính req.method (vốn dùng để lưu phương thức HTTP của request).

Có hai cách để ghi đè phương thức HTTP: sử dụng XMLHttpRequest hoặc sử dụng query string.

Để ghi đè bằng cách sử dụng query string, ta chỉ cần truyền vào methodOverride tên tham số giữ giá trị ghi đè.

Ví dụ:

const methodOverride = require('method-override')
 
app.use(methodOverride('method'))

Sau đó sử dụng method trong query string, với giá trị là phương thức HTTP cần ghi đè.

<form method="POST" action="/resources?method=DELETE">
  <button type="submit">Delete resource</button>
</form>

Documents