我有一个Category模型,它的唯一属性是name.
还有一个SubCategory模型,它有一个包含模型名称name的category字符串字段Category。
当Category模型name更改时,SubCategory指向该类别的每个都应更新其category字段以匹配新名称。
我目前正在通过获取SubCategories指向某个类别的所有内容、遍历它们并更新它的类别字段来直接在路由处理程序上实现这一点。
我想在模型中实现这个逻辑,它应该属于。
Category我在模型上创建了一个预中间件,
CategorySchema.pre('save', function(next) {
console.log('Saving ' + this.name);
next();
});
负责PUT请求的路由处理程序使用更新后的名称保存模型,如下所示:
...
parentCategory.name = requestedName;
parentCategory.validate(function(validationError) {
if (validationError) {
return res.send(response.BAD_REQUEST);
}
parentCategory.save(function(saveError) {
if(saveError) {
return res.send(response.SERVER_ERROR);
}
});
});
...
但是我打印了新名称,所以我无法迭代它的子类别,因为我只能访问新名称。
我不确定我应该如何将旧名称和新名称都传递给中间件以在那里做这些事情。