【问题标题】:How to use Array attributes in sails.js model如何在sails.js 模型中使用数组属性
【发布时间】:2015-04-03 05:44:52
【问题描述】:

你好,我是一个新的航行者,正在尝试获得一个模型 api,最终给出如下输出

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

我认为我可以通过将 icon 属性作为数组传递来实现这一点,但问题是当我在 REST CLIENT 中加载它时它会将整个数组作为字符串传递,我也无法像没有 ico_type 和URL 数据不应加载到数据库中。因此,非常感谢在我错的地方使用“数组”的任何建议,非常感谢! Sails_v0.11.0 MongoDB_3.0.1

【问题讨论】:

  • 你用什么来发回响应? res.ok({}) ?
  • 不,我创建了一个图标模型并在那里定义了一个属性 {icon : { type : array, required:true}}

标签: javascript arrays sails.js sails-mongo


【解决方案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 时才必须创建数组
  • 那是另一个问题,您可以添加类似beforeCreate: function (values, next) { .... } 的内容,您可以接受答案,以便其他人受益:)
【解决方案2】:

我觉得WaterLine给你的模型已经是JSON格式了,你需要做的就是用正确的方式去响应它。

res.json(model);

【讨论】:

  • 我得到了我需要的结果 Json,但目的是使用 json 对象内的水线验证。有什么建议吗?
猜你喜欢
  • 1970-01-01
  • 2019-02-28
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
  • 2014-05-15
  • 2014-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多