下面的代碼成功刪除當按鈕被點擊並確認記錄:Express是否要求我使用POST路由刪除?
路由器(快遞):
router.post('/meetings/delete/:slug', catchErrors(meetingController.deleteMeeting));
控制器:
exports.deleteMeeting = async (req, res) => {
const slug = req.params.slug;
const meeting = await Meeting.remove({ slug });
req.flash('success', 'meeting successfully deleted!');
res.redirect(`/meetings`);
};
視圖模板(帕格/翡翠):
form.delete-meeting-form(method='POST' action=`/meetings/delete/${meeting.slug}?_method=DELETE`)
input.button.button--delete(type='submit' value='DELETE MEETING' onclick='return confirm("Are you sure you want to delete this meeting? (Cannot be undone)")')
此代碼原樣運行。但是,我似乎很奇怪我似乎需要使用POST路由才能完成我的DELETE請求。當我試圖使用router.delete
來形成路線時,它不起作用。
據我所知,HTML並不支持DELETE和PUT/PATCH請求,但爲什麼要將我的Express路由命名爲delete
?我做錯什麼了嗎?
express支持基於刪除方法的路由https://expressjs.com/en/starter/basic-routing.html –
謝謝,Arpit。我看到了這一點,但是當我試圖實施它時,我不再碰到控制器。只有當我切換到POST時,它終於工作。 –
與形式和簡單的提交按鈕有沒有辦法可以使用刪除路線,但如果你嘗試ahax它會工作。當你點擊路線時會顯示什麼? 404? –