在“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
- 如何在Node.js / Express.js中将中间件放在它自己的文件中
- Express js – 中间件中的error handling
- req.locals与res.locals与res.data与req.data与快速中间件中的app.locals
- mongoose – 如何挖掘模式中间件到'init'事件?
- 分组和pipe理node.js中间件
- 我可以用什么来取代嵌套的asynchronouscallback?
- 除了特定的path,在Express中使用特定的中间件
- 如何在res.send之后但在响应离开服务器之前挂钩==>当res.statusCode被知道时
- expression全局中间件不被调用