是否可以在" keen"中添加除标准属性之外的其他用户定义属性。宾语?

时间:2018-01-04 08:16:14

标签: node.js reactjs keen-io

对于每个敏锐的事件,敏锐的对象会自动附加敏锐对象的结构。

var keen_event = {
 "keen": {
  "created_at": "2012-12-14T20:24:01.123000+00:00",
  "timestamp": "2012-12-14T20:24:01.123000+00:00",
  "id": "asd9fadifjaqw9asdfasdf939"
 },
 other properties...
}

但我想在敏锐的对象中添加其他自定义属性;

 {
 "keen": {
  "created_at": "2012-12-14T20:24:01.123000+00:00",
  "timestamp": "2012-12-14T20:24:01.123000+00:00",
  "id": "asd9fadifjaqw9asdfasdf939",
  "event_type" : "some_values",
  ...
 }
}

我尝试在keen上添加其他属性,然后将keen_event编码为:

var encodedData = base64.encode(JSON.stringify(keen_event));

然后在敏锐的api上传递编码数据以创建一个事件,但我收到错误:"敏锐名称空间的无效属性。您使用了:\' event_type \'"。

有解决方案吗?是否可以在"上添加标准属性以外的自定义键值属性?敏锐"创造一个敏锐的事件时的对象?提前谢谢。

3 个答案:

答案 0 :(得分:2)

不,这在Keen API中是不允许的。 keen命名空间是保留的,只有少数几个属性(例如keen.timestampkeen.addons)可以在写入事件时在该命名空间中指定。保留名称空间以允许Keen在将来添加新的特殊用途属性,而不用担心与用户定义属性的冲突。 (另见:https://keen.io/docs/api/#the-keen-object。)

也许值得退一步并问:为什么要将自定义属性添加到keen命名空间?你可以做些什么,而不是my.keen.xkeen_custom.x

仅供参考:我是Keen的平台工程师:)

答案 1 :(得分:0)

var data = {
 "keen": {
  "created_at": "2012-12-14T20:24:01.123000+00:00",
  "timestamp": "2012-12-14T20:24:01.123000+00:00",
  "id": "asd9fadifjaqw9asdfasdf939",
 },
 "keen1": {
  "created_at": "2012-12-14T20:24:01.123000+00:00",
  "timestamp": "2012-12-14T20:24:01.123000+00:00",
  "id": "asd9fadifjaqw9asdfasdf939",
 },
 "keen2": {
  "created_at": "2012-12-14T20:24:01.123000+00:00",
  "timestamp": "2012-12-14T20:24:01.123000+00:00",
  "id": "asd9fadifjaqw9asdfasdf939",
 }
}
var newObj = {}
Object.keys(data).map((element)=> {
  var t = {
    ...data[element],
    "event_type" : "some_values",
  }
 newObj[element] = t
 return element
})
console.log(newObj)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.0/react-dom.min.js"></script>

这可能会有所帮助

答案 2 :(得分:0)

尝试这样的事情

var keenEvent = {
 "keen": {
  "created_at": "2012-12-14T20:24:01.123000+00:00",
  "timestamp": "2012-12-14T20:24:01.123000+00:00",
  "id": "asd9fadifjaqw9asdfasdf939"
 }
};

keenEvent.keen.myNewProperty = "its value";
keenEvent.keen.myNewProperty2 = "its value2";