NodeJS MVC模型验证

时间:2015-06-18 14:43:56

标签: javascript node.js model-view-controller model

这可能是一个普遍的问题,但我想知道是否有人建议实现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
}

感谢任何反馈!

1 个答案:

答案 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