從資料庫中洗掉物件時出現錯誤,但是,當我使用 Postman 測驗我的代碼時,它可以作業,所以我認為我的 ejs 語法不正確。
js代碼
<center> <a class="delete_category_a" href="/halalMunchies/update-category/<%= category._id%>" style="color: red "> Delete </a> </center>
洗掉路線
exports.deleteCategory = (req, res, next) => {
console.log('DELETE CATEGORY /delete-category');
const id = req.params.id;
categorySchema.findByIdAndDelete(id)
.then(result => {
//res.redirect('/halalMunchies/all-categories');
res.send(console.log(result));
})
.catch(err => {
console.log(err);
});
};
瀏覽器錯誤
Cannot GET /halalMunchies/delete-category/6187cb11e3b98a7aa70a277a
uj5u.com熱心網友回復:
您當前的代碼正在發送 GET 請求(它只是一個普通鏈接),但您的請求處理程式用于 DELETE 請求。<form>您當前代碼中的實際內容沒有做任何事情,也不是當前操作的一部分。
因為鏈接或表單都不能直接發送 DELETE 請求,所以您有以下選擇:
您可以使用此技術發送表單 POST 并配置 Express 以自動將其轉換為 DELETE 請求(使用中間件),因為您無法通過瀏覽器中的表單提交發送 DELETE。
您可以使用
fetch()Javascript 中的介面來攔截點擊或表單發布,并發送與上面相同的 POST 請求,Express 將轉換為 DELETE 請求。您可以使用
fetch()Javascript 中的介面來攔截點擊或表單發布,并直接使用 Javascript 發送 DELETE 請求。您可以更改 Express 路由以期待 POST,然后使用表單提交或
fetch()發送 POST的請求。
我會推薦#1 或#3。
fetch()用于發送 DELETE 請求的示例代碼:
const url = "/halalMunchies/update-category/<%= category._id%>";
fetch(url, {
method: "DELETE",
credentials: "include"
}).then(result => {
// handle completion here
}).catch(err => {
// handle error here
});
uj5u.com熱心網友回復:
您可以使用 JQuery 創建這樣的 DELETE 請求
$.ajax({
type: "DELETE",
url: `/route`,
data: { /* as an object */ },
success: function (data) {
console.log(data);
},
error: function (data) {
console.error(data);
},
});
<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script>
添加此標記以使用 JQuery 并在此行之后參考您添加先前代碼的檔案
這不是一個非常標準的方法,但由于您使用的是 ejs,這是一個非常實用的解決方案。
注意:JQuery 的腳本標簽可能很舊,所以如果您遇到問題,我建議您訪問最新的 JQuery URL
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/352440.html
上一篇:為什么我收到“400:錯誤請求”但請求成功發布到我的資料庫
下一篇:蓋茨比陰影問題
