From 549233f42a5285f3dcad63d92dc04f8cdac45728 Mon Sep 17 00:00:00 2001 From: Philippe Torrel Date: Mon, 6 Jul 2026 10:36:25 +0200 Subject: [PATCH] --- 02_advanced/uebungen/u13_dns-lookup/index.js | 54 +++++++++++++++++++ .../uebungen/u13_dns-lookup/package-lock.json | 28 ++++++++++ .../uebungen/u13_dns-lookup/package.json | 16 ++++++ .../tag15/02_switch-case/index.html | 1 + 02_advanced/unterricht/tag16/01_README.md | 1 + 5 files changed, 100 insertions(+) create mode 100644 02_advanced/uebungen/u13_dns-lookup/index.js create mode 100644 02_advanced/uebungen/u13_dns-lookup/package-lock.json create mode 100644 02_advanced/uebungen/u13_dns-lookup/package.json create mode 100644 02_advanced/unterricht/tag16/01_README.md diff --git a/02_advanced/uebungen/u13_dns-lookup/index.js b/02_advanced/uebungen/u13_dns-lookup/index.js new file mode 100644 index 0000000..21cbe70 --- /dev/null +++ b/02_advanced/uebungen/u13_dns-lookup/index.js @@ -0,0 +1,54 @@ +// const dns = require('node:dns'); // commonjs +import dns from 'node:dns'; // esm module +import util from 'node:util'; +import color from 'chalk'; + +const IP_V = 4; // we use IP protocol version 4 +const URL = 'google.de'; + +const getIpBy = (url, ipVersion = 4) => { + return new Promise((resolve, reject) => { + // async process + dns.lookup(url, ipVersion, (error, address) => { + if (error) { + reject(error); + } else { + resolve({ address: address, family: ipVersion }); + } + }); + }); +}; + +// Promises Unterobjekt von Node +const getPromisesIpBy = (url, ipVersion = 4) => { + // async process + return dns.promises.lookup(url, ipVersion); +}; + +// Promisify Helferfunktion +const getPromisifyIpBy = util.promisify(dns.lookup); + +// Test Cases: +getIpBy(URL, IP_V) + .then((data) => { + console.log(data); + }) + .catch((err) => { + console.log(color.red(err)); + }); + +getPromisesIpBy(URL) + .then((data) => { + console.log(data); + }) + .catch((err) => { + console.log(color.red(err)); + }); + +getPromisifyIpBy(URL, IP_V) + .then((data) => { + console.log(data); + }) + .catch((err) => { + console.log(color.red(err)); + }); diff --git a/02_advanced/uebungen/u13_dns-lookup/package-lock.json b/02_advanced/uebungen/u13_dns-lookup/package-lock.json new file mode 100644 index 0000000..2701339 --- /dev/null +++ b/02_advanced/uebungen/u13_dns-lookup/package-lock.json @@ -0,0 +1,28 @@ +{ + "name": "u13_dns-lookup", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "u13_dns-lookup", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "chalk": "^5.6.2" + } + }, + "node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + } + } +} diff --git a/02_advanced/uebungen/u13_dns-lookup/package.json b/02_advanced/uebungen/u13_dns-lookup/package.json new file mode 100644 index 0000000..ff2ddb6 --- /dev/null +++ b/02_advanced/uebungen/u13_dns-lookup/package.json @@ -0,0 +1,16 @@ +{ + "name": "u13_dns-lookup", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "module", + "dependencies": { + "chalk": "^5.6.2" + } +} diff --git a/02_advanced/unterricht/tag15/02_switch-case/index.html b/02_advanced/unterricht/tag15/02_switch-case/index.html index de06f6c..aec6951 100644 --- a/02_advanced/unterricht/tag15/02_switch-case/index.html +++ b/02_advanced/unterricht/tag15/02_switch-case/index.html @@ -78,6 +78,7 @@ case 'info': color = '#25cff2'; break; + case 'error': case 'danger': color = '#a52834'; break; diff --git a/02_advanced/unterricht/tag16/01_README.md b/02_advanced/unterricht/tag16/01_README.md new file mode 100644 index 0000000..a0904cb --- /dev/null +++ b/02_advanced/unterricht/tag16/01_README.md @@ -0,0 +1 @@ +# Exkurs: Webseite mit Sass und package.json (scripts) Part II