我正在使用Meteor并从远程api调用中提取大量数据。调用返回我的函数期望具有某种结构并包含某些键的数据对象。但是,有时请求或返回的结果可能有问题,并且在某些情况下,远程数据将返回两个具有相同值的不同键的对象。即:{name:tyler},{firstName:joe}。到目前为止,我刚刚修补了#34;这些差异或错误返回,但我想知道是否有更好的方法来确保如果返回一个带有奇怪键的对象或者我没有检查的结构的错误请求是我可以捕获所有这些可能性并确保将正确的值映射到我为应用程序数据决定的键名,并且如果错过了所有键,则放置默认值。 ie:使用{name:tyler},{firstName:joe},{userName:alex},如果我正在检查" name" key和a" firstName" key,然后tyler和joe值都将映射到键,对于具有" userName"的对象。键将默认值映射到键。
答案 0 :(得分:0)
您可以使用模块aldeed:simple-schema
https://github.com/aldeed/meteor-simple-schema
这是用于Javascript数据的Schema验证的一个很好的模块。默认使用此方法是将模式附加到meteor中的mongo集合,以确保正在保存的数据格式正确。
如果您要保存此数据,那么这可能对您有用。否则,您也可以只创建模式并要求它验证对象。
使用此方法可以清理和验证数据。也就是说,您可以尝试首先使用尝试查找和映射字段的自定义处理程序来清理数据,然后将其验证到您的模式,如果不符合则插入失败。