根据模板或一组规则对数据进行消毒/整形

时间:2019-01-10 19:49:11

标签: javascript validation object sanitization

在最近的几个项目中,我使用以下模式来确保从后端接收的数据始终采用前端所需的格式:

var response = {
    id:"1234",
    someText:null,
    someDate: "2018-07-27T14:16:56"
};

var template = {
    id: DataShape.integer(),
    someText: DataShape.string(""),
    someDate: DataShape.date(),
    missingProperty: DataShape.integer()
}

var result = DataShape.copy(response, template);
console.log(result);
/*Result:
{
     "id":1234,
     "someText":"",
     "someDate":{ },//Date Object 2018-07-27T18:16:56.000Z
     "missingProperty":null
}*/

对我们来说非常有用,并且在代码中节省了大量验证。 (例如确保不要尝试对null执行.toLowerCase())

性能开销似乎也很小。

这种方法有什么问题吗?无论出于什么原因,我都没有看到任何已经做到这一点的库。

(我并不是真的在寻找代码答案,但是关于维护库的建议会很好)

谢谢!

0 个答案:

没有答案