そのタイトルが理にかなっていることを願っています...私はJavascriptで何かをするのは初めてで、しばらく探していました。
Node-RED を使用して、JSON を含む HTTP POST を受信しています。次のデータが msg.req.body に投稿されており、 内のオブジェクトを取り出したいtargets
:
{
"policy_url": "https://alerts.newrelic.com/accounts/xxxxx/policies/7477",
"condition_id": 429539,
"condition_name": "Error rate",
"account_id": 773524,
"event_type": "INCIDENT",
"runbook_url": null,
"severity": "CRITICAL",
"incident_id": 50,
"version": "1.0",
"account_name": "Inc",
"timestamp": 1436451988232,
"details": "Error rate > 5% for at least 3 minutes",
"incident_acknowledge_url": "https://alerts.newrelic.com/accounts/xxxxxx/incidents/50/acknowledge",
"owner": "Jared Seaton",
"policy_name": "Default Policy",
"incident_url": "https://alerts.newrelic.com/accounts/xxxxxx/incidents/50",
"current_state": "acknowledged",
"targets": [{
"id": "6002060",
"name": "PHP Application",
"link": "https://rpm.newrelic.com/accounts/xxxxxx/applications/6002060?tw[start]=1436450194&tw[end]=1436451994",
"labels": {
},
"product": "APM",
"type": "Application"
}]
}
イベント管理システムにイベントを挿入するために、TCP 経由で送信する文字列をフォーマットしたいと考えています。だから私は次のことを試しました:
msg.payload = msg.req.body.targets[0] + "|" + msg.req.body.severity + "|" + msg.req.body.current_state + "|" + msg.req.body.details + "|" + msg.req.body.condition_name + "\n\n";
return(msg);
これにより、次のメッセージが表示されます。
[object Object]|CRITICAL|acknowledged|Error rate > 5% for at least 3 minutes|Error rate
いくつか試してみましたが、null が返されるか、[object Object] が返されます。なんか近い気がする…
誰でも手伝ってもらえますか?
前もって感謝します。