@embiid

Как избежать ошибки CastError?

Наткнулся на такую проблему с работой nodejs и mongo.

Делаю такую crm систему, где можно редактировать и удалять записи.
С редактированием все отлчино, а вот с записями которые должны быть удалены - не работает.

Выдает ошибку типу: "CastError: Cast to ObjectId failed for value "5dd050dd54b4a11fe4e2724adelete" at path "_id" for model "Post""

На разных ресурсах читал что желательно установить меньше версию mongo&&mongoose на 2.7.2 и на 4.7.2(не важно), пробовал но ничего не получалось, мне npm выдавал ошибку и подсказывал команду npm audit/+fix, которые обновляли mongodb || mongoose.

Даже если оставлять mongoose на версии 4 - терминал пишет что одна из функции то ли remove/delete застарелая, и надо использовать deleteOne || removeOne.

Код модели:
const mongoose = require('mongoose')
const Schema = mongoose.Schema;

const PostSchema = new Schema({
    title: {
        type: String,
        required: true
    },

    status: {
        type: String,
        default: 'public'
    },

    allowComments: {
        type: String,
        required: true
    },

    body: {
        type: String,
        require: true
    },
})

module.exports = mongoose.model('Post', PostSchema)


Код роута:
router.delete('/:id', (request, response) => {
    Post.remove({ _id: request.params.id}).then(result => {
            response.redirect('/admin/posts')
    })
})


Надеюсь на Вашу подсказку)
  • Вопрос задан
  • 27 просмотров
Решения вопроса 1
hzzzzl
@hzzzzl
value "5dd050dd54b4a11fe4e2724adelete"
выглядит, что это лишнее delete к айдишнику добавляется уже в req.params.id?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы