Modulesysteem en machtigingen
Begrijp het op URL's gebaseerde modulesysteem van Deno en het fijnmazige machtigingsmodel voor veilige uitvoering.
Modulesysteem en machtigingen is een gratis Edge computing met Cloudflare Workers en Deno-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Edge computing met Cloudflare Workers en Deno. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Edge computing met Cloudflare Workers en Deno bevat in totaal 4 lessen.
Deno-modules: bouwstenen
In Deno worden toepassingen opgebouwd met modules. Je kunt modules zien als afzonderlijke bestanden met verwante code, zoals functies, klassen of variabelen.
Ze helpen je code georganiseerd en herbruikbaar te houden en voorkomen dat je project uitgroeit tot één enorm, moeilijk te beheren bestand.
URL's als modulepaden
In tegenstelling tot Node.js gebruikt Deno geen map node_modules. In plaats daarvan importeert Deno modules rechtstreeks met URL's of bestandspaden.
- Lokale bestanden: Gebruik relatieve of absolute paden (bijvoorbeeld
./my_module.ts). - Externe bestanden: Gebruik volledige URL's (bijvoorbeeld
https://deno.land/std/fs/mod.ts).
Deze eenvoudige aanpak maakt afhankelijkheidsbeheer heel overzichtelijk!
Je eigen code importeren
We maken twee bestanden: utils.ts met een eenvoudige functie en main.ts om die te importeren en te gebruiken. Zo deel je logica binnen je eigen project.
utils.ts:
export function greet(name: string): string {
return `Hello, ${name}!`;
}Het lokale modulevoorbeeld uitvoeren
Nu importeren en gebruiken we onze functie greet in main.ts. Let op het relatieve pad ./utils.ts.
Probeer dit voorbeeld uit te voeren:
// main.ts
import { greet } from "./utils.ts";
console.log(greet("CoddyKit"));Modules van het web ophalen
Deno kan modules rechtstreeks vanuit web-URL's importeren. Dat is krachtig, maar vereist ook vertrouwen in de bron. Deno slaat deze modules na de eerste download in de cache op.
Zo importeer je een hulpprogramma uit de standaardbibliotheek van Deno:
// main.ts
import { join } from "https://deno.land/std/path/mod.ts";
const path = join("/users", "coddy", "documents");
console.log(`Joined path: ${path}`);Deno slaat externe modules in de cache op
Wanneer je voor het eerst een Deno-script uitvoert dat externe modules importeert, downloadt Deno deze en slaat ze lokaal in de cache op. Daardoor verlopen volgende uitvoeringen veel sneller.
- Modules in de cache worden opgeslagen in een globale map.
- Je kunt de cache handmatig wissen met
deno cache --reloadofdeno cache --reset. - Deno controleert de integriteit van modules met controlesommen.
Standaard veilig: machtigingen
Deno is ontworpen met het oog op beveiliging. Standaard heeft een Deno-programma geen toegang tot je bestandssysteem, netwerk of omgevingsvariabelen.
Je moet deze machtigingen expliciet verlenen met vlaggen op de opdrachtregel wanneer je je script uitvoert. Zo voorkom je dat schadelijke code zonder jouw medeweten schade aanricht.
Bestanden veilig lezen
Om je Deno-programma bestanden te laten lezen, heb je de machtiging --allow-read nodig. Je kunt specifieke paden opgeven of toegang tot alles toestaan met . (de huidige map) of door geen pad op te geven.
data.txt:
Hello Deno permissions!`--allow-read` in actie
We proberen data.txt te lezen. Zonder machtiging mislukt dit. Met --allow-read werkt het wel! (bijvoorbeeld deno run --allow-read main.ts)
Probeer dit voorbeeld uit te voeren:
// 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);
}Netwerkverzoeken uitvoeren
Om je Deno-programma netwerkverzoeken te laten uitvoeren (zoals gegevens ophalen uit een API), heb je de machtiging --allow-net nodig.
Je kunt specifieke hosts opgeven (bijvoorbeeld --allow-net=api.example.com) of alle netwerktoegang toestaan. (bijvoorbeeld 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);
}Uitdaging: machtigingen!
Welke van de volgende Deno-opdrachten zorgt ervoor dat een script met de naam app.ts zowel bestanden uit de huidige map kan lezen als netwerkverzoeken naar elk domein kan versturen?
Samenvatting: modules en machtigingen
Goed gedaan! Je hebt geleerd over het moderne modulesysteem van Deno, dat URL's gebruikt voor zowel lokale als externe imports en zo het beheer van afhankelijkheden vereenvoudigt.
Je hebt ook het robuuste machtigingsmodel van Deno verkend en geleerd hoe je je scripts specifieke toegang kunt geven, zoals --allow-read en --allow-net, zodat ze veilig worden uitgevoerd. Deze aanpak, waarbij beveiliging standaard is ingeschakeld, is een belangrijk kenmerk van Deno!
Leer Edge computing met Cloudflare Workers en Deno met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 47
Veelgestelde vragen
Is de les “Modulesysteem en machtigingen” gratis?
Ja — de volledige tekst van “Modulesysteem en machtigingen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Edge computing met Cloudflare Workers en Deno wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Edge computing met Cloudflare Workers en Deno bevat in totaal 4 lessen.
Wat leer ik in “Modulesysteem en machtigingen”?
Begrijp het op URL's gebaseerde modulesysteem van Deno en het fijnmazige machtigingsmodel voor veilige uitvoering. Je oefent met Edge computing met Cloudflare Workers en Deno door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Edge computing met Cloudflare Workers en Deno te beginnen?
Ervaring vooraf is niet nodig. Edge computing met Cloudflare Workers en Deno op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Modulesysteem en machtigingen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Edge computing met Cloudflare Workers en Deno?
Ja. Elke les over Edge computing met Cloudflare Workers en Deno bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Essentiële kennis van de Deno-runtime
- Modulesysteem en machtigingen
- Lokale Deno-apps ontwikkelen
- Deno-applicaties testen