MetriBeacon
Menü
Deutsch

JavaScript mit Node.js

Senden Sie Messwerte aus Node.js und halten Sie den Schlüssel außerhalb des Quellcodes.

Auf dieser Seite

Das benötigen Sie

Eine unterstützte Node.js-Laufzeit, eine numerische Reihe und eine private Geräteschlüsseldatei.

So geht es

  1. Speichern Sie das Beispiel als .mjs-Datei und ersetzen Sie die Reihenkennung durch Ihre eigene.
  2. Lesen Sie den Schlüssel aus seiner privaten Datei und bereiten Sie einen Inhalt pro Messung vor.
  3. Starten Sie das Skript, prüfen Sie den HTTP-Status und suchen Sie den Wert im Monitor.

Gut zu wissen

Nutzen Sie dieses Beispiel in Node.js, nicht in einem öffentlichen Browserskript. Besucher können einen in Browser-JavaScript eingebetteten Schlüssel auslesen. Behalten Sie bei vorübergehenden Fehlern denselben Inhalt für Wiederholungen.

javascript
import { readFile } from "node:fs/promises"
import { homedir } from "node:os"
import { randomUUID } from "node:crypto"

const key = (await readFile(`${homedir()}/.config/metribeacon/device.key`, "utf8")).trim()
const body = JSON.stringify({ batch_id: randomUUID(), points: [{
  id: randomUUID(), series_id: "33333333-3333-4333-8333-333333333333",
  measured_at: new Date().toISOString(), value: 21.5,
}] })
const response = await fetch("https://metribeacon.com/api/v1/ingest/points", {
  method: "POST", signal: AbortSignal.timeout(15000),
  headers: { Authorization: `Bearer ${key}`, "Content-Type": "application/json" }, body,
})
if (!response.ok) throw new Error(`HTTP ${response.status}`)
console.log(await response.json())

Wenn etwas nicht klappt

Prüfen Sie response.ok, bevor Sie JSON als Annahmeantwort behandeln. Ein Fehler beim Lesen der Antwort kann an einem HTTP-Fehler liegen.