NodeJS MVC 模型验证

NodeJS MVC Model Validation

本文关键字:验证 模型 MVC NodeJS      更新时间:2023-09-26
这可能是

一个笼统的问题,但我想知道是否有人建议为 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
}

任何反馈不胜感激!

我强烈推荐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 的验证。

自述文件有大量的文档,它非常易于使用,并输出了 rest api 所需的所有信息(实际上您可以将其直接插入 hapijs)