MEAN堆栈中的validation…?

我正在开发一个MEAN堆栈应用程序,但我坚持validation(用户input)。 我知道客户端validation在Angular-JS中完成,但我很困惑在服务器端validation的地方。 要么使用mongooose进行validation,要么不对mongooose进行任何validation(只是存储)仅在服务器(Node / Express使用某些模块)中进行validation, 或者在服务器级别和数据库级别进行validation。 ?

我应该做什么请帮助我select哪种做法是最好的….. ????

谢谢。

作为MEAN堆栈开发人员,有多种方法来validation表单… 1.)AngularJs表单validation2.)Mongoosevalidation3.)后端validation(Expressvalidation器或nodeValidator)

==>在mongoose中validation

防爆。

var userSchema = new Schema({ phone: { type: String, required: [true, 'User phone number required'] }, name: String, subDoc: [ { newName:String, data:String } ] }); 

以上代码显示了mongoosevalidation器的简单集成。

mongoose模式下的validation可能会在编写文档时产生问题,当有嵌套字段时会产生更糟糕的情况,我相信会有这种情况。 在这种情况下你可以修改模式来pipe理validation,所以我遇到了很多麻烦。

所以它是一个更好的IDEA去与节点validation器或表示validation程序是超级简单的使用,并提供了许多不同types的validation选项..

TRY 节点validation器 , Expressvalidation器

js.com/package/node-validator

我个人build议快速validation器。 这很简单,并提供你所需要的大部分东西。

银行只是mongoosevalidation是不够的。 您的路线必须保证不让无效数据通过mongoosevalidation。

这个validation的最好的地方是中间件。

 router.get('/', validateParameters, controller.index); 

该function需要reqresnext 。 如果req参数有效,则调用next,否则返回400状态码。 这样,只有有效的呼叫到达终点。

 function validateParameters(req, res, next){ // if req.params/req.body/req.query is valid // return next(); // else return res.status(400).end; } 

至于实际上如何validation,你可以检查express-validator包,这给你很多选项来validationreq body,query和params。 一个好的select是为每个路由创build一个模式 ,只是将该模式传递给validateParameters函数,并用req.check(schema) (检查全部), req.checkQuery(schema)req.checkBody(schema)req.checkParams(schema) ,取决于你的参数在哪里。

你也可以看一下mongoose-validatorjs 。