# Dynamische Auswertung

Wenn Platzhaltervariablen wie `${file.meta.width}` nicht ausreichen, um Ihre Anwendungslogik zu implementieren, können Sie auch den gesamten Funktionsumfang von modernem JavaScript nutzen, um dynamische Anweisungen für die Assembly zu erstellen. Diese Skripte werden auf unserer Infrastruktur ausgeführt und können auf alle[Assembly Variables](/de/docs/topics/assembly-instructions.md#assembly-variables) zugreifen. Dazu gehören die Metadaten einer Datei, die Transloadit automatisch ermittelt, grundlegende Informationen zur Laufzeit der Assembly sowie[Felder, die Sie als Entwickler beim Erstellen der Assembly ausfüllen können](/de/docs/api/assemblies-post.md#fields).

Beispielsweise können Sie die Größe von Bildern anpassen, damit sie dem Gestaltungsprinzip des[Goldenen Schnitts](https://en.wikipedia.org/wiki/Golden%5Fratio) entsprechen:

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

```json
{
  "robot": "/image/resize",
  "height": "${file.meta.width / (1 + Math.sqrt(5))/2}",
  "resize_strategy": "crop"
}

```

Oder Sie können den Namen der Ausgabedatei beim[Upload zu S3](/docs/robots/s3-store.md) in Großbuchstaben umwandeln:

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

```json
{
  "robot": "/s3/store",
  "path": "my-folder/${file.name.toUpperCase()}"
}

```

Alles innerhalb von `${...}` wird ausgewertet. Dabei stehen Ihnen sämtliche Sprachfunktionen von JavaScript zur Verfügung, solange Ihr Skript keine asynchronen Operationen ausführt. Sie können beispielsweise Methoden von [Math](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global%5FObjects/Math),[Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global%5FObjects/Date) oder[String](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global%5FObjects/String)verwenden.

## Variablenabfrage

Die dynamische Auswertung ist kostenlos, wenn es sich um eine einfache Abfrage wie `${file.name}`oder `${file.meta.faces[0]}` handelt.

Komplexere Auswertungen wie `${Math.max(10, file.meta.width)}` sind kostenpflichtig. Das liegt daran, dass wir [🤖/script/run](/docs/robots/script-run.md) aufrufen, um JavaScript zu interpretieren. Dadurch beanspruchen die Auswertungen unsere Systeme stärker und dauern einige Millisekunden länger. Dafür steht Ihnen eine vollständige Programmiersprache zur Verfügung, die deutlich mehr Möglichkeiten bietet.
