在MEAN堆栈验证.....?

时间:2017-06-08 08:39:16

标签: node.js validation express mongoose

我正在开发一个MEAN堆栈应用程序,但我坚持验证(用户输入)。我知道客户端验证是在Angular-JS中完成的,但我很困惑在服务器端验证的位置。使用mongooose进行验证不要对mongooose(只是存储)进行任何验证仅在服务器中进行验证(使用某些模块进行节点/表达)验证两者服务器级和数据库级.... ????

我该怎么办请帮助我选择哪种做法最好..... ????

感谢。

3 个答案:

答案 0 :(得分:2)

作为MEAN堆栈开发人员,有多种方法可以验证表单... 1.)AngularJs形成验证 2.)猫鼬验证 3.)后端验证(Express验证器ot nodeValidator)

==>在mongoose验证

实施例

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

上面的代码显示了mongoose验证器的简单集成。

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

所以它是一个更好的IDEA,可以使用节点验证器或表达验证器,它们使用起来非常简单,并提供了许多不同类型的验证选项。

TRY node-validatorExpress validator

js.com/package/node-validator

我个人建议使用Express验证器。这很简单,提供了你需要的大部分东西。

答案 1 :(得分:0)

仅通过mongoose验证银行业务是不够的。必须保护您的路由,以免无效数据通过进行猫鼬验证。

此验证的最佳位置是中间件。

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

该功能需要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;
}

至于实际如何验证,您可以检查express-validator包,它提供了许多选项来验证req正文,查询和参数。一个不错的选择是为每条路线创建一个schema,然后将该模式传递给validateParameters函数并使用req.check(schema)(以检查全部),req.checkQuery(schema)req.checkBody(schema)之一进行验证或req.checkParams(schema),具体取决于参数的位置。

答案 2 :(得分:0)

您可能还想查看mongoose-validatorjs