我的Node.js应用没有检测到mongoose方法findByIdAndDelete作为函数

ltqd579y  于 12个月前  发布在  Go
关注(0)|答案(1)|浏览(149)

感谢您花时间阅读这篇文章。
我有一个这样定义的模式,

const mongoose = require('mongoose');

//modelo de categorias
const categoriaEsquema = mongoose.Schema({
    nombre: {
        type: String,
        required: true
    },
    color: {
        type: String,
    },
    icono: {
        type: String,
    },
    /*imagen: {
        type: String,
        required: true
    },*/ //Aún no se usa
})

exports.CategoriaModelo = mongoose.model('Categoria',categoriaEsquema);

字符串
我正试图实现一个在其他页面上使用以下代码的请求

const {CategoriaModelo} = require('../modelos/categorias');
const express = require('express');
const router = express.Router();

router.delete('/:id', (req, res) => {
    CategoriaModelo.findByIdAndRemove(req.params.id);
});

module.exports = router;


但它给了我这个错误:
Error
请帮帮我,提前谢谢
我尝试使用其他方法,如finOneAnd.等,但它似乎根本无法检测Mongoose方法。

avkwfej4

avkwfej41#

你可以使用findByIdAndDelete来代替,并像这样等待异步调用:

router.delete('/:id', async (req, res) => { //< Mark callback as async
   try{
      const deletedDoc = await CategoriaModelo.findByIdAndDelete(req.params.id);
      return res.status(200).json({
         message: 'Delete was a success'
      })
   }catch(err){
      console.log(err);
      //Handle error
      return res.status(400).json({
         message: 'Error on server'
      });
   }
});

字符串

编辑

您还需要在模式定义中使用new关键字:

const categoriaEsquema = new mongoose.Schema({
   //...
});

相关问题