0Pricing
Edge Computing with Cloudflare Workers & Deno · Lektion

Modulsystem und Berechtigungen

Verstehen Sie Denos URL-basiertes Modulsystem und sein granular aufgebautes Berechtigungsmodell für eine sichere Ausführung.

Modulsystem und Berechtigungen ist eine kostenlose Edge Computing with Cloudflare Workers & Deno-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Edge Computing with Cloudflare Workers & Deno-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Edge Computing with Cloudflare Workers & Deno-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

Deno Modules: Building Blocks

In Deno, applications are built using modules. Think of modules as individual files that contain related code, like functions, classes, or variables.

They help keep your code organized and reusable, preventing your project from becoming one giant, hard-to-manage file.

URLs as Module Paths

Unlike Node.js, Deno doesn't use a node_modules folder. Instead, Deno imports modules directly using URLs or file paths.

  • Local Files: Use relative or absolute paths (e.g., ./my_module.ts).
  • Remote Files: Use full URLs (e.g., https://deno.land/std/fs/mod.ts).

This simple approach makes dependency management very straightforward!

Importing Your Own Code

Let's create two files: utils.ts with a simple function, and main.ts to import and use it. This is how you share logic within your own project.

utils.ts:

export function greet(name: string): string {
  return `Hello, ${name}!`;
}

Running Local Module Example

Now, let's import and use our greet function in main.ts. Notice the relative path ./utils.ts.

Try running this example:

// main.ts
import { greet } from "./utils.ts";

console.log(greet("CoddyKit"));

Fetching Modules from the Web

Deno can directly import modules from web URLs. This is powerful, but also requires trust in the source. Deno caches these modules after the first download.

Here's how to import a utility from Deno's standard library:

// main.ts
import { join } from "https://deno.land/std/path/mod.ts";

const path = join("/users", "coddy", "documents");
console.log(`Joined path: ${path}`);

Deno Caches Remote Modules

When you first run a Deno script that imports remote modules, Deno downloads and caches them locally. This makes subsequent runs much faster.

  • Cached modules are stored in a global directory.
  • You can manually clear the cache with deno cache --reload or deno cache --reset.
  • Deno verifies module integrity using checksums.

Secure by Default: Permissions

Deno is designed to be secure. By default, a Deno program has no access to your file system, network, or environment variables.

You must explicitly grant these permissions using command-line flags when running your script. This prevents malicious code from doing harm without your knowledge.

Reading Files Securely

To allow your Deno program to read files, you need the --allow-read permission. You can specify specific paths or allow access to everything with . (current directory) or by omitting a path.

data.txt:

Hello Deno permissions!

`--allow-read` in Action

Let's try to read data.txt. Without permission, it will fail. With --allow-read, it works! (e.g., deno run --allow-read main.ts)

Try running this example:

// main.ts
const filePath = "./data.txt";
try {
  const content = await Deno.readTextFile(filePath);
  console.log("File content:", content);
} catch (error) {
  console.error("Error reading file:", error.message);
}

Making Network Requests

To allow your Deno program to make network requests (like fetching data from an API), you need the --allow-net permission.

You can specify specific hosts (e.g., --allow-net=api.example.com) or allow all network access. (e.g., deno run --allow-net main.ts)

// main.ts
try {
  const response = await fetch("https://deno.land/std/README.md");
  if (response.ok) {
    const text = await response.text();
    console.log("Fetched content (first 50 chars):");
    console.log(text.substring(0, 50));
  } else {
    console.error("Failed to fetch:", response.statusText);
  }
} catch (error) {
  console.error("Network error:", error.message);
}

Permission Challenge!

Which of the following Deno commands would allow a script named app.ts to both read files from the current directory AND make network requests to any domain?

Recap: Modules & Permissions

Great job! You've learned about Deno's modern module system, which uses URLs for both local and remote imports, simplifying dependency management.

You also explored Deno's robust permission model, understanding how to grant specific access (like --allow-read and --allow-net) to your scripts for secure execution. This "secure by default" approach is a core Deno feature!

Häufig gestellte Fragen

Ist die Lektion „Modulsystem und Berechtigungen“ kostenlos?

Ja — der vollständige Text von „Modulsystem und Berechtigungen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Edge Computing with Cloudflare Workers & Deno-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Edge Computing with Cloudflare Workers & Deno-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Modulsystem und Berechtigungen“?

Verstehen Sie Denos URL-basiertes Modulsystem und sein granular aufgebautes Berechtigungsmodell für eine sichere Ausführung. Du übst Edge Computing with Cloudflare Workers & Deno mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Edge Computing with Cloudflare Workers & Deno zu starten?

Keine Vorkenntnisse erforderlich. Edge Computing with Cloudflare Workers & Deno auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Modulsystem und Berechtigungen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Edge Computing with Cloudflare Workers & Deno-Lektion Code schreiben und ausführen?

Ja. Jede Edge Computing with Cloudflare Workers & Deno-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Grundlagen der Deno-Laufzeitumgebung
  2. Modulsystem und Berechtigungen
  3. Lokale Deno-Anwendungen entwickeln
  4. Deno-Anwendungen testen
← Zurück zu Edge Computing with Cloudflare Workers & Deno