javascript - NodeJS MVC 模型验证

标签 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
}

如有任何反馈,我们将不胜感激!

最佳答案

我强烈、强烈推荐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...
}

或者,您可以在模型原型(prototype)上创建一个自定义 validate 函数来包装 joi 的验证。

自述文件包含大量文档,并且非常易于使用,并输出您需要的 Rest api 所需的所有信息(事实上您可以插入它 directly into hapijs )

关于javascript - NodeJS MVC 模型验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30918588/

相关文章:

jquery - 如何在Asp.Net MVC中通过jquery ajax动态加载部分 View

php - 有没有我可以用来表示实例化后添加的魔术方法属性的 PHP DocBlock?

javascript - 如何将值从输入传递到按钮 react ?

javascript - 无法在 Google 跟踪代码管理器中提取数据层变量

javascript - d3.js:在 Angular 应用程序和 node.js 上运行相同的代码

asp.net-mvc - 用于 ASp.net MVC 的 AJAX 工具包

javascript - 在 javascript 禁用浏览器中提交表单

javascript - 使用来自数据库的选择选项

node.js - 将 mongodb 用户 ID 插入另一个用户模式中

javascript - Node js,如何在循环后运行代码同步