我尝试添加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
版本,但没有帮助
1条答案
按热度按时间7uzetpgm1#
在引入模式之前调用mongoose的方法。
模式的这一部分不仅仅是一个简单的Javascript对象,您需要将其传递给mongoose并使用返回的对象。
下面的代码片段可能会帮助您理解这种行为。