Sistem Modul dan Perizinan
Pahami sistem modul berbasis URL milik Deno dan model perizinannya yang terperinci untuk eksekusi yang aman.
Sistem Modul dan Perizinan adalah pelajaran Edge Computing with Cloudflare Workers & Deno gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Edge Computing with Cloudflare Workers & Deno, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Edge Computing with Cloudflare Workers & Deno mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
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 --reloadordeno 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!
Belajar Edge Computing with Cloudflare Workers & Deno dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 12
- Pelajaran
- 47
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Sistem Modul dan Perizinan” gratis?
Ya — teks lengkap “Sistem Modul dan Perizinan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Edge Computing with Cloudflare Workers & Deno, upgrade ke CoddyKit PRO. Kursus Edge Computing with Cloudflare Workers & Deno mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Sistem Modul dan Perizinan”?
Pahami sistem modul berbasis URL milik Deno dan model perizinannya yang terperinci untuk eksekusi yang aman. Kamu berlatih Edge Computing with Cloudflare Workers & Deno dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Edge Computing with Cloudflare Workers & Deno?
Tidak diperlukan pengalaman sebelumnya. Edge Computing with Cloudflare Workers & Deno di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Sistem Modul dan Perizinan” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Edge Computing with Cloudflare Workers & Deno ini?
Ya. Setiap pelajaran Edge Computing with Cloudflare Workers & Deno menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Hal-Hal Penting tentang Runtime Deno
- Sistem Modul dan Perizinan
- Mengembangkan Aplikasi Deno Lokal
- Menguji Aplikasi Deno