app.post("/delete", (req, res) => {
const deleteItem = req.body.checkbox;
Item.findByIdAndRemove(deleteItem, (err) => {
if (!err) console.log("deleted succesfully");
else console.log(err);
});
res.redirect("/");
});
這里deleteItem在控制臺日志記錄時回傳字串,但是當我嘗試deleteItem時出現以下錯誤
MongooseError [CastError]: Cast to ObjectId failed for value "61861e5c0bb4650c066f9e60 " at path "_id" for model "Item"
at new CastError (D:\College\web dev\todolist-v2\node_modules\mongoose\lib\error\cast.js:27:11)
at ObjectId.cast (D:\College\web dev\todolist-v2\node_modules\mongoose\lib\schema\objectid.js:158:13)
at ObjectId.SchemaType._castForQuery (D:\College\web dev\todolist-v2\node_modules\mongoose\lib\schematype.js:1088:15)
at ObjectId.castForQuery (D:\College\web dev\todolist-v2\node_modules\mongoose\lib\schema\objectid.js:198:15)
at ObjectId.SchemaType.castForQueryWrapper (D:\College\web dev\todolist-v2\node_modules\mongoose\lib\schematype.js:1045:15)
at cast (D:\College\web dev\todolist-v2\node_modules\mongoose\lib\cast.js:275:32)
at model.Query.Query.cast (D:\College\web dev\todolist-v2\node_modules\mongoose\lib\query.js:3305:12)
at model.Query.Query._castConditions (D:\College\web dev\todolist-v2\node_modules\mongoose\lib\query.js:1295:10)
at model.Query.Query._findOneAndRemove (D:\College\web dev\todolist-v2\node_modules\mongoose\lib\query.js:2251:8)
at D:\College\web dev\todolist-v2\node_modules\kareem\index.js:250:8
at D:\College\web dev\todolist-v2\node_modules\kareem\index.js:23:7
at processTicksAndRejections (node:internal/process/task_queues:78:11) {
stringValue: '"61861e5c0bb4650c066f9e60 "',
kind: 'ObjectId',
value: '61861e5c0bb4650c066f9e60 ',
path: '_id',
reason: undefined,
uj5u.com熱心網友回復:
如果您檢查例外堆疊跟蹤:
Cast to ObjectId failed for value "61861e5c0bb4650c066f9e60 "
ID 末尾有一個額外的空格。可能這就是問題所在,因為作為 ObjectID 傳遞的引數必須是 12 個位元組的字串或 24 個十六進制字符的字串。在這種情況下,它是 25 個字符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/350146.html
標籤:javascript 猫鼬
