Маршрутизатор JSON in express. js с оператором forEach - PullRequest
1 голос
/ 21 марта 2020

Я пытаюсь заставить мой API возвращать JSON с каждым из имен этого оператора forEach. Есть 8 имен, и это возможно только res.send один раз.

код ниже

timeSeries.forEach(data => {
     res.json(data.metric.labels.instance_name + Math.round(100000 * data.points[0].value.doubleValue) / 1000000 + "%")
})

Ответы [ 2 ]

1 голос
/ 21 марта 2020

вы должны вернуть список результатов для одного json ответа

const result = timeSeries.map((data, i)=> {
    const name = data.metric.labels.instance_name;
    const roundedValue = Math.round(100000 * data.points[0].value.doubleValue) / 1000000;
    return `${name}: ${roundedValue}%`;
});

res.json({
   result: result
});

1 голос
/ 21 марта 2020

res.json() используется для завершения ответа путем сериализации заданных данных как JSON, отправки их в качестве тела ответа, а затем завершения ответа. Поэтому, вызывать его более одного раза не имеет смысла.

Я думаю, что вы хотите сделать, это map timeSeries data в массив значений и отправить JSON этого вычисленного массива данных:

res.json(
  timeSeries.map(data => {
    const roundedValue = Math.round(100000 * data.points[0].value.doubleValue) / 1000000;
    return `${data.metric.labels.instance_name}${roundedValue}%`;
  })
)
...