Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Ошибка при удалении -TypeError: Good.deleteOne is not a function (https://javascript.ru/forum/node-js-io-js/84447-oshibka-pri-udalenii-typeerror-good-deleteone-not-function.html)

Jimy 12.09.2022 12:28

Ошибка при удалении -TypeError: Good.deleteOne is not a function
 
Добрый день! Вот кусок кода:
router.post('/remove',async(req,res)=>{
  try{
  await Good.deleteOne({_id:req.body.id})
  res.redirect('/good')}
  catch (e) {
  console.log(e)
  }
  
})

и вот в консоле ошибка TypeError... Что это, почему "не функция"?
Версия mongoose 4.3.1.

Aetae 12.09.2022 17:06

Что такое "Good"?

Jimy 13.09.2022 04:17

const {Router} = require('express')
const Good = require('../models/good')
const router = Router()

router.get('/', async (req, res) => {
  const goods = await Good.find()
  res.render(goods', {
    title: Товары',
  goods
  })
})

router.get('/:id/edit',async(req,res)=>{
  if(!req.query.allow){
    return res.redirect('/')
  }
  const goods=await Good.findById(req.params.id)
  res.render('good-edit',{
    title: "Редактировать" ,
    goods
  })
})

router.post('/edit',async(req,res)=>{
 const {id}=req.body.id
 delete req.body.id
 await Good.findByIdAndUpdate(id,req.body)
 res.redirect('/goods')
})

router.get('/:id', async (req, res) => {

  const good = await Good.findById(req.params.id)
  res.render('good', {
    layout: 'main',
    title: `Товар ${course.title}`,
    good
  })
})
router.post('/remove',async(req,res)=>{
  try{
  await Good.deleteOne({_id:req.body.id})
  res.redirect('/goods')}
  catch (e) {
  console.log(e)
  }
  
})

module.exports = router

Jimy 13.09.2022 04:20

const mongoose =require('mongoose')
const GoodSchema=new mongoose.Schema({
  title:{
    type:String,
    required:true
  },
  price:{
    type:Number,
    required:true
  },
  img:{
    type:String
  }
})
module.exports=mongoose.model('Course',GoodSchema)

Jimy 13.09.2022 04:25

Разобрался! Дело в версии мангуста. У меня 4, и там надо использовать
findByIdAndRemove или findOneAndRemove


Часовой пояс GMT +3, время: 10:37.