Zurück zur Knowledge Base
Persistenten Speicher in Custom Apps nutzen
Was ist Persistent Storage?
Abschnitt betitelt „Was ist Persistent Storage?“Custom Apps können Daten sitzungsübergreifend speichern — über einen serverseitigen
Key-Value-Store, ctx.dataContainer. Anders als clientseitige JavaScript-Variablen (die
beim Neuladen zurückgesetzt werden) überdauern Werte im Data Container das Neuladen der Seite.
Wie es funktioniert
Abschnitt betitelt „Wie es funktioniert“Der Speicher liegt in der Server-API der App (Lua). Der Vue-Client ruft über
window.rpc einen Server-Handler auf; der Handler liest oder schreibt ctx.dataContainer.
Server-API (serverApi.lua):
exports = {}
function exports.saveCount(input) ctx.dataContainer.put("counter", input.count) return { status = "ok" }end
function exports.loadCount() return { status = "ok", result = ctx.dataContainer.get("counter") }endClient (Script):
// speichernawait window.rpc('saveCount', { count: 5 });
// lesenconst r = await window.rpc('loadCount');const count = r.result; // nil/undefined, falls nie gesetztAPI (serverseitig, Custom Apps)
Abschnitt betitelt „API (serverseitig, Custom Apps)“| Funktion | Wirkung |
|---|---|
ctx.dataContainer.put(key, value) | Wert speichern (String, Number oder Table) |
ctx.dataContainer.get(key) | Wert lesen (nil, falls nicht gesetzt) |
ctx.dataContainer.delete(key) | Wert entfernen |
ctx.dataContainer gibt es nur in Custom Apps. Tenant-Scripts haben es nicht;
Integration-Scripts nutzen stattdessen ctx.integration.containers*.
Hinweise
Abschnitt betitelt „Hinweise“- Strukturierte Daten als Table speichern; bei Bedarf
ctx.json.encode/ctx.json.decodefür eine explizite String-Form. - Zusammengehörige Daten unter einem Key halten und gemeinsam aktualisieren, um Roundtrips zu sparen.
- Der Data Container ist auf die App begrenzt.