如何在sails.js模型中使用数组属性

3

你好,我是一个新手,正在尝试使用Sails,希望能够得到一个模型API,最终输出如下:

[ 
  { 
    "icon" : [ 
      {"name":"ico1", "ico_typ":"fb", "ico_content_URL":"someLocation"},
      {"name":"ico2", "ico_typ":"tw", "ico_content_URL":"someLocation"},
      {...}
      ]
      "createdAt":
      "updatedAt":
     
  } 
]

我认为可以通过将图标属性作为数组传递来实现此目的,但问题在于当我在REST CLIENT中加载它时,它会将整个数组作为字符串传递,而且我不能使用数组内值的验证,例如没有ico_type和URL时,数据不应加载到数据库中。因此,非常感谢有关'array'使用的建议,如果我错了,请指出,谢谢! Sails_v0.11.0 MongoDB_3.0.1


你用什么来发送响应?res.ok({})吗? - Ryan Wu
我创建了一个图标模型并在其中定义了一个属性 {icon: {type: array, required:true}}。 - Anandapriyan S.D
2个回答

1
在你的模型中定义一个方法。
toJSON: function () {
   var obj = this.toObject();
   //say your obj.icon returns something like `'[{"name":"ico1","ico_typ":"fb","ico_content_URL":"someLocation"},{"name":"ico2","ico_typ":"tw","ico_content_URL":"someLocation"}]'`
   obj.icon = JSON.parse(obj.icon)
   return obj;
},

是的,这个完美地运作了,但我还需要验证数组内部的内容,例如只有在它包含有效的URL时才创建该数组。 - Anandapriyan S.D
那是另一个问题,你可以添加类似于 beforeCreate: function (values, next) { .... } 的内容。并且你可以接受答案,这样其他人也能受益 :) - Muntasim

1
我认为WaterLine模型已经是JSON格式了,你需要做的就是使用正确的方式来响应它。
res.json(model);

我得到了我需要的结果Json,但我的目标是在Json对象内部使用waterline验证。有什么建议吗? - Anandapriyan S.D

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接