gpt4 book ai didi

node.js - Nodejs中间件.pre显示不是一个函数

转载 作者:太空宇宙 更新时间:2023-11-04 03:29:43 24 4
gpt4 key购买 nike

    var categoryList = new Referral({categoryList : category});

categoryList.pre('save', function (next) {
Referral.find({categoryList : category}, function (err, docs) {
if (!docs.length){
next();
}else{
console.log('Data exists: ', category);
next(new Error("Data exists!"));
}
})
})

Referral 是分配给我的架构的变量。categoryList 是对象

这会产生错误

TypeError: categoryList.pre is not a function at D:\Aventyn\ClipCare_v2\app\api.js:112:18 at Layer.handle [as handle_request] (D:\Aventyn\ClipCare_v2\node_modules\express\lib\router\layer.js:95:5) at next (D:\Aventyn\ClipCare_v2\node_modules\express\lib\router\route.js:131:13) at Route.dispatch (D:\Aventyn\ClipCare_v2\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (D:\Aventyn\ClipCare_v2\node_modules\express\lib\router\layer.js:95:5) at D:\Aventyn\ClipCare_v2\node_modules\express\lib\router\index.js:277:22 at Function.process_params (D:\Aventyn\ClipCare_v2\node_modules\express\lib\router\index.js:330:12) at next (D:\Aventyn\ClipCare_v2\node_modules\express\lib\router\index.js:271:10) at Function.handle (D:\Aventyn\ClipCare_v2\node_modules\express\lib\router\index.js:176:3) at router (D:\Aventyn\ClipCare_v2\node_modules\express\lib\router\index.js:46:12) at Layer.handle [as handle_request] (D:\Aventyn\ClipCare_v2\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (D:\Aventyn\ClipCare_v2\node_modules\express\lib\router\index.js:312:13) at D:\Aventyn\ClipCare_v2\node_modules\express\lib\router\index.js:280:7 at Function.process_params (D:\Aventyn\ClipCare_v2\node_modules\express\lib\router\index.js:330:12) at next (D:\Aventyn\ClipCare_v2\node_modules\express\lib\router\index.js:271:10) at D:\Aventyn\ClipCare_v2\node_modules\express\lib\router\index.js:618:15

最佳答案

尝试改变:

categoryList.pre('save', function (next) {
// ...
})

至:

categoryList.schema.pre('save', function (next) {
// ...
})

.pre() 是 Mongoose 架构的一种方法,而不是模型。

关于node.js - Nodejs中间件.pre显示不是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39724891/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com