这可能是一个普遍的问题,但我想知道是否有人建议实现NodeJS MVC应用程序的模型验证。我目前正在开发一个应用程序,其中模型在存储在持久数据(DynamoDB)中时需要和可选字段。
我想在模型文件中只有一个验证函数,可以确保根据需要格式化和填充相应的字段,但是要确保方法是模块化的,可重用的,干净的和高效的。
有一些例子可以在.Net MVC框架中使用这种功能,但实际上不是自定义实现,特别是使用Javascript。
示例模型:
用户
var User = function (userObj) {
this.email = userObj.email; //required
this.firstName = userObj.firstName; //required
this.company = userObj.company; //optional
}
感谢任何反馈!
答案 0 :(得分:2)
我非常强烈推荐joi
var joi = require('joi');
var userSchema = joi.object().keys({
email: joi.string().email().required(),
firstName: joi.string().required(),
company: joi.string() // or object, or what have you
});
var User = function(userObj) {
var err = userSchema.validate(userObj).error;
if (err) {
// handle error and abort
}
// other code...
}
或者,您可以在模型的原型上创建自定义validate
函数,以包装joi的验证。
自述文件有大量的文档,它非常易于使用,并输出你需要的所有信息用于休息api(实际上你可以插入它directly into hapijs)