← Alle Plattformen

Node.js-Schnellstart

Am Ende dieser Seite läuft ein Node.js-Skript, das einen Ende-zu-Ende-verschlüsselten Dokumentenspeicher anlegt, ein Todo schreibt und es wieder ausliest — alles in unter 5 Minuten.

1) Installieren

Lege ein neues Projekt an (oder nimm ein bestehendes) und installiere MindooDB. Node.js 20+ ist Voraussetzung.

npm init -y
npm install mindoodb

2) index.mjs anlegen

Füge Folgendes in index.mjs ein. Der Aufruf von createTenant erzeugt alle kryptografischen Schlüssel (Admin-Signaturschlüssel, Benutzer-Signaturschlüssel, Verschlüsselungsschlüssel, Tenant-Schlüssel) und registriert in einem Schritt den ersten Benutzer. Danach öffnen wir eine Datenbank und erstellen ein Dokument — jede Änderung wird automatisch signiert und verschlüsselt.

import {
  BaseMindooTenantFactory,
  InMemoryContentAddressedStoreFactory,
} from "mindoodb";

async function main() {
  const storeFactory = new InMemoryContentAddressedStoreFactory();
  const factory = new BaseMindooTenantFactory(storeFactory);

  // One call creates admin + user keys, KeyBag, and directory
  const { tenant, adminUser, appUser, keyBag } =
    await factory.createTenant({
      tenantId: "my-first-tenant",
      adminName: "cn=admin/o=demo",
      adminPassword: "admin-password",
      userName: "cn=alice/o=demo",
      userPassword: "user-password",
    });

  // Open a database and create a todo document
  const db = await tenant.openDB("todos");
  const todo = await db.createDocument();
  await db.changeDoc(todo, async (d) => {
    const data = d.getData();
    data.title = "Buy milk";
    data.done = false;
  });

  // Read it back
  const ids = await db.getAllDocumentIds();
  const loaded = await db.getDocument(ids[0]);
  console.log("Loaded todo:", loaded.getData());
}

main();

3) Ausführen

node index.mjs

Erwartete Ausgabe:

Loaded todo: { title: 'Buy milk', done: false }
Damit läuft ein lokaler, Ende-zu-Ende-verschlüsselter Dokumentenspeicher in Node.js. Jede Änderung wird kryptografisch signiert und verschlüsselt, bevor sie gespeichert wird.