# Node.js SDK

[transloadit/node-sdk](https://github.com/transloadit/node-sdk)

Wir bieten ein voll ausgestattetes Software Development Kit für Node.js, mit dem Ihre Node-Apps komfortabel mit der Transloadit REST API kommunizieren können.

## Installation

**Hinweis:** Diese Dokumentation gilt für das Node SDK v4 (ESM, Node.js 20+). Ältere Dokumentationen finden Sie unter[v3](https://github.com/transloadit/node-sdk/tree/v3) oder[v2](https://github.com/transloadit/node-sdk/tree/v2). Details zum Upgrade finden Sie im[Migrationsleitfaden von v3 auf v4](https://github.com/transloadit/node-sdk/blob/main/MIGRATION.md).

Verwenden Sie `@transloadit/node` als Paketnamen. Der bisherige npm-Paketname `transloadit` bleibt als Alias für die Abwärtskompatibilität erhalten.

Geben Sie in Ihrem Projekt Folgendes ein:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```bash
yarn add @transloadit/node

```

oder

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```bash
npm install --save @transloadit/node

```

## CLI

Dieses Paket enthält eine voll ausgestattete CLI:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```bash
export TRANSLOADIT_KEY="YOUR_TRANSLOADIT_KEY"
export TRANSLOADIT_SECRET="YOUR_TRANSLOADIT_SECRET"
npx -y @transloadit/node --help

```

###### Hinweis

Die ausführbare CLI-Datei heißt weiterhin `transloadit`, daher können Befehlsbeispiele`npx transloadit ...` verwenden.

### Intent-Befehle

Für schnelle einmalige Jobs bietet die CLI außerdem abstrakte Intent-Befehle. Diese bündeln gängige Transloadit-Workflows in leicht verständlichen Unterbefehlen, sodass Sie nicht für jede Aufgabe mitAssembly Instructions im JSON-Format beginnen müssen.

Beispiel:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```bash
export TRANSLOADIT_KEY="YOUR_TRANSLOADIT_KEY"
export TRANSLOADIT_SECRET="YOUR_TRANSLOADIT_SECRET"
npx -y transloadit markdown pdf --input ./README.md --print-urls

```

Weitere Beispiele:

* `npx -y transloadit image remove-background --input ./photo.jpg --print-urls`
* `npx -y transloadit image generate --prompt "A red bicycle in a studio" --output bicycle.png`
* `npx -y transloadit image generate --input ./person1.jpg --input ./person2.jpg --input ./background.jpg --prompt "Place person1.jpg feeding person2.jpg in front of background.jpg" --output scene.png`
* `npx -y transloadit image describe --input ./hero.jpg --for wordpress --output fields.json`

`image generate` verwendet jetzt standardmäßig `google/nano-banana-2`, auch bei Ausführungen mit Eingabedateien.

Wenn Sie `--output` weglassen, schreibt die CLI die Ausgabe nach Möglichkeit neben eine einzelne lokale Eingabedatei. Andernfalls verwendet sie das aktuelle Arbeitsverzeichnis. Verwenden Sie nur `--print-urls`, wenn Sie temporäre Ergebnis-URLs wünschen, ohne die Dateien lokal herunterzuladen.

Wir haben außerdem das öffentliche[Transloadit-Skills-Repository](https://github.com/transloadit/skills/tree/main/skills/transform-generate-image-with-transloadit)aktualisiert, damit es denselben Intent-basierten Workflow zur Bilderzeugung verwendet.

Die vollständige Befehlsreferenz finden Sie in der[Referenz der Intent-Befehle](https://github.com/transloadit/node-sdk/blob/main/packages/node/docs/intent-commands.md)und im [README](https://github.com/transloadit/node-sdk#readme) des Pakets.

## CommonJS-Projekte

Das SDK unterstützt ausschließlich ESM. Wenn Sie CommonJS verwenden, nutzen Sie einen dynamischen Import:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```javascript
async function getClient() {
  const { Transloadit } = await import('@transloadit/node')
  return new Transloadit({
    authKey: process.env.TRANSLOADIT_KEY,
    authSecret: process.env.TRANSLOADIT_SECRET,
  })
}

```

## Verwendung

Der folgende Code lädt ein Bild hoch und skaliert es auf die Größe eines Vorschaubilds:

![](/_next/static/media/copy.04p1cju9qekk_.svg?dpl=dpl_3z41v8VuCJJKgtsQfSKB6o2uiSXL)

```javascript
import { ApiError, Transloadit } from '@transloadit/node'

const transloadit = new Transloadit({
  authKey: 'YOUR_TRANSLOADIT_KEY',
  authSecret: 'YOUR_TRANSLOADIT_SECRET',
})

try {
  const options = {
    files: {
      file1: '/PATH/TO/FILE.jpg',
    },
    params: {
      steps: {
        // You can have many Steps. In this case we will just resize any inputs (:original)
        resize: {
          use: ':original',
          robot: '/image/resize',
          result: true,
          width: 75,
          height: 75,
        },
      },
      // OR if you already created a template, you can use it instead of "steps":
      // template_id: 'YOUR_TEMPLATE_ID',
    },
    waitForCompletion: true, // Wait for the Assembly (job) to finish executing before returning
  }

  const status = await transloadit.createAssembly(options)

  if (status.results.resize) {
    console.log('✅ Success - Your resized image:', status.results.resize[0].ssl_url)
  } else {
    console.log("❌ The Assembly didn't produce any output. Make sure you used a valid image file")
  }
} catch (err) {
  console.error('❌ Unable to process Assembly.', err)
  if (err instanceof ApiError && err.assemblyId) {
    console.error(`💡 More info: https://transloadit.com/assemblies/${err.assemblyId}`)
  }
}

```

[Details zu Ihren ausgeführten Assemblies finden Sie hier](/assemblies/).

## Beispiele

* [Bild hochladen und skalieren](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/resize%5Fan%5Fimage.ts)
* [Bild hochladen und in WebP konvertieren](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/convert%5Fto%5Fwebp.ts)
* [SVG in PNG rastern](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/rasterize%5Fsvg%5Fto%5Fpng.ts)
* [Ein Gesicht aus einem Bild ausschneiden und das Ergebnis herunterladen](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/face%5Fdetect%5Fdownload.ts)
* [Retry-Beispiel](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/retry.ts)
* [Gesamtkosten berechnen (GB-Nutzung)](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/fetch%5Fcosts%5Fof%5Fall%5Fassemblies%5Fin%5Ftimeframe.ts)
* [CRUD für Templates](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/template%5Fapi.ts)
* [CRUD für Template-Zugangskonfigurationen](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/credentials.ts)

Weitere vollständig funktionsfähige Beispiele finden Sie unter[examples/](https://github.com/transloadit/node-sdk/blob/main/packages/node/examples/).

## Dokumentation

Die vollständige Dokumentation finden Sie auf [GitHub](https://github.com/transloadit/node-sdk#readme). Details zum Upgrade von v3 auf v4 finden Sie im[Migrationsleitfaden](https://github.com/transloadit/node-sdk/blob/main/MIGRATION.md).
