如何在mongoose中消毒用户input?

我正在努力消除mongoose中的用户input。 我虽然使用mongoose中间件会有所帮助,但似乎我是错了,或者我做错了什么。

我试图使用Mongoose中间件(而不是Express中间件)的原因是我有一个可以嵌套文档的文档 – 但是,嵌套文档也可以是独立文档。 我正在为我的文档创build一个“单一的事实点”,以便我只能在一个地方进行清理。

下面的代码似乎不工作:

Organization.pre("validate", function (next) { this.subdomain = this.trim().toLowerCase(); next(); }); 

PS。 我也使用mongoosevalidation程序,它依次使用节点validation程序来validation用户input节点validation程序也有一些消毒方法,也许我应该使用它们?

在这种情况下,我认为最好添加trim: true对于subdomainOrganization模式定义为trim: true

 subdomain: { type: String, trim: true }