mongoose schema.pre()不是函数

xytpbqjk  于 2022-12-27  发布在  Go
关注(0)|答案(1)|浏览(173)

我尝试添加markup并清理输入,但一直收到错误;这是我的密码

const mongoose = require('mongoose');
const slug = require('slugify');
const createDomPurify = require('dompurify');
const marked = require('marked');
const {JSDOM} = require('jsdom');
const dompurify = createDomPurify( new JSDOM().window);

const CPASchema = {
   

   //SOME PART OF THIS CODE BUT UNNECESSARY TO THE QUESTION 

    answer:{
        type:String
    },

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

CPASchema.pre('validate', async function(data, next){ 

    if(data.answer) {
         console.log('JUST BEFORE SANITIZING')
        data.sanitizedHTML = await dompurify.sanitize(marked(data.answer));
    }
    next()

})

module.exports = mongoose.model('CPASchema', CPASchema);

这是我一直收到的错误

CPASchema.pre('validate', async function(data, next){
          ^

TypeError: CPASchema.pre is not a function

编辑我已尝试更改mongoose版本,但没有帮助

7uzetpgm

7uzetpgm1#

在引入模式之前调用mongoose的方法。
模式的这一部分不仅仅是一个简单的Javascript对象,您需要将其传递给mongoose并使用返回的对象。
下面的代码片段可能会帮助您理解这种行为。

const schema = new mongoose.Schema({ name: String });

schema.pre('save', () => console.log('Hello from pre save'));

相关问题