Node.js Mongoose前置中间件,带有findByIdAndDelete
我正在学习一门关于Udemy for Node js的课程。mongoose pre中间件与remove一起使用,如下所示Node.js Mongoose前置中间件,带有findByIdAndDelete,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我正在学习一门关于Udemy for Node js的课程。mongoose pre中间件与remove一起使用,如下所示 ReviewSchema.pre('remove', function() { // code goes here }); 但是我的实现是不同的,我想使用findbyianddelete。这是我的密码 ReviewSchema.pre('findByIdAndDelete', function() { // code goes here }); 但是这个不会触发
ReviewSchema.pre('remove', function() {
// code goes here
});
但是我的实现是不同的,我想使用findbyianddelete。这是我的密码
ReviewSchema.pre('findByIdAndDelete', function() {
// code goes here
});
但是这个不会触发。我试着在这里面运行console.log,但它没有触发。我做错了什么?我相信中间件不存在。请看下面的图片 但是,如果您转到
findbyianddelete
,您将看到它触发以下中间件:
findOneAndDelete
因此,与其使用
ReviewSchema.pre('findbyianddelete',…)
试试ReviewSchema.pre('findoneddelete',…)
我相信中间件是不存在的。请看下面的图片
但是,如果您转到findbyianddelete
,您将看到它触发以下中间件:
findOneAndDelete
因此,与其使用
ReviewSchema.pre('findbyianddelete',…)
试试ReviewSchema.pre('findoneddelete',…)
似乎没有用于findbyianddelete
的中间件
但是由于findbyianddelete
会触发findOneAndDelete
,因此您可以利用这一点
因此,您的ReviewSchema必须更新如下:
ReviewSchema.pre("findOneAndDelete", function() {
console.log("called!!!");
});
另外,最好包含next(),这样它就不会停止中间件函数中其余代码的执行
ReviewSchema.pre("findOneAndDelete", function(next) {
console.log("called!!!");
next();
});
似乎没有用于
findbyianddelete
的中间件
但是由于findbyianddelete
会触发findOneAndDelete
,因此您可以利用这一点
因此,您的ReviewSchema必须更新如下:
ReviewSchema.pre("findOneAndDelete", function() {
console.log("called!!!");
});
另外,最好包含next(),这样它就不会停止中间件函数中其余代码的执行
ReviewSchema.pre("findOneAndDelete", function(next) {
console.log("called!!!");
next();
});