在“mongoose”(prevalidate)中间件中更改字段是否正确?
每次将post保存到数据库时,我都需要生成slu g。 特别是Post.create
和post.save
。 在PostShema.pre('validate')
中间件中,我可能需要这个地方,如下所示:
PostSchema.pre('validate', function (next) { this.slug = sluglify(this.title); return next(); });
所有的工作正常,除了它发生在validate
middlweare应该只检查,但没有设置的事实。
所以我questuin是我应该居住在我的代码sluglify我的标题创build或更新后?
这在validation中没有发生,但在validation之前 。 恕我直言,这就好像你在validation之前预先清理你的对象; 这没关系。
如果你觉得更舒适,你可以把它包括在pre-save
或pre-init
而不是pre-validate