Ошибка при удалении -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. |
Что такое "Good"?
|
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
|
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)
|
Разобрался! Дело в версии мангуста. У меня 4, и там надо использовать
findByIdAndRemove или findOneAndRemove |
| Часовой пояс GMT +3, время: 08:09. |