Pages

Mon premier serveur d'application WEB


🥷clonez moi

Objectif du cours : introduire Express !

Modules NPM

Les modules se répartissent en trois catégories :


1️⃣les modules de fichiers,

2️⃣les modules Node

3️⃣les modules


Etude des modules de npm avec une étude de cas : debug


3️⃣Modules 


🆒TD1

TD

Test : ViteTest un must

 Je viens de vous rediger un article sur le test avec vitest ! 


en action : https://github.com/testgithubdupont/testvite.git



URL ?

const aString = 'https://www.hostinger.com/tutorials/wp-content/uploads/sites/2/2021/08/how-to-make-a-website-1.png'

const url = new URL(aString);
console.log(url)

The URL interface is used to parse, construct, normalize, and encode URLs. It works by providing properties which allow you to easily read and modify the components of a URL.

🥷Exemple d'utilisation de new URL dans un fichier index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script type="module" src=""></script>
    <script>
        const parsedUrl = new URL(window.location.href);
        console.log(pareseUrl)
        document.body.innerText = `window.location.href = ${parsedUrl}`
    </script>
</body>
</html>

__dirname ??

__dirname n'est pas reconnu lorsque l'on passe en version de module EJS. 

Voici deux solutions possibles : solutions

🆘Différence entre URL et File path !

Voici trois écritures du chemin d'accès à un même fichier :

// URL

const fileURL = 'file:///C:/Users/username/Documents/fichier.json';


// Equivalent file path

const filePath = 'C:\\Users\\username\\Documents\\fichier.json';


// Equivalent file path in Git Bash

const filePath = '/c/Users/username/Documents/fichier.json';


// Equivalent file path

Notez que dans les chemins de fichiers Windows, les barres obliques inverses (\) sont utilisées comme séparateurs, mais dans les chaînes JavaScript, les barres obliques inverses sont des caractères d'échappement, et doivent donc être échappées elles-mêmes avec une autre barre oblique inversée. 


🚀En action : 

Un chemin d'accès est une chaîne de caractères qui spécifie l'emplacement d'un fichier dans un système de fichiers. Il peut être absolu ou relatif. Voici un exemple de lecture d'un fichier à l'aide d'un chemin d'accès dans Node.js :

const fs = require('fs');

const path = require('path');

// Absolute file path

const absoluteFilePath = path.join(__dirname, '2024-03-18-feed.json');

fs.readFile(absoluteFilePath, 'utf8', (err, data) => {

  if (err) {

    console.error(err);

    return;

  }

  console.log(data);

});


Une URL (Uniform Resource Locator) est une référence à une ressource web qui spécifie son emplacement sur un réseau informatique et un mécanisme pour la récupérer. 

🥷Dans Node.js, vous pouvez également utiliser les URL pour les chemins d'accès aux fichiers, ce qui est particulièrement utile pour les projets de développement. 

import { readFile } from 'fs/promises';

import { fileURLToPath } from 'url';

import { dirname } from 'path';


// URL for the current module

const currentModuleURL = new URL(import.meta.url);


// Convert the URL to a file path

const currentModulePath = dirname(fileURLToPath(currentModuleURL));


// Use the file path to read a file

const data = await readFile(`${currentModulePath}/2024-03-14-feed.json`, 'utf8');

console.log(data);

Dans ce deuxième exemple, import.meta.url fournit une URL pour le module en cours. Cette URL est ensuite convertie en chemin de fichier à l'aide de fileURLToPath, et le chemin de fichier est utilisé pour lire un fichier.

La principale différence entre les deux est que les chemins d'accès aux fichiers sont spécifiques au système de fichiers et sont utilisés pour lire/écrire des fichiers, tandis que les URL sont plus généraux et peuvent être utilisés pour localiser des ressources sur Internet ou sur un réseau local, en plus du système de fichiers local.


Les commandes de base

 PowerShell



Ces commandes devraient vous aider à naviguer dans le système de fichiers avec PowerShell.

🔧Pour lister tous les fichiers dans un répertoire, utilisez la commande `Get-ChildItem`. Par exemple, pour lister tous les fichiers dans le répertoire courant :
>Get-ChildItem (git-bash ls)

🔧 Pour changer de répertoire, utilisez la commande `Set-Location` (ou son alias `cd`). Par exemple, pour aller au répertoire parent (notez les ..)
>Set-Location ..  (git-bash cd..)

🔧Pour aller à la racine du disque, vous pouvez simplement utiliser `Set-Location` avec le chemin de la racine. Par exemple, pour aller à la racine du disque C:
>Set-Location C:\  (git-bash cd /)

🔧 Pour obtenir le chemin du répertoire courant, utilisez la commande `Get-Location` (ou son alias `pwd`):
>Get-Location (git-bash pwd)

Plan du cours : Nodes

 Cours : lien


File System : lien

Retour vers le problème d'une lecture de fichier asynchrone : lien


Cours

TD

🆒 TD 'express)


NPM

 

En savoir plus : Mise à jour de version

 Continuez avec 

👿C'est quoi le problème ?

⏱️Etude de l'asynchronisme


Introduction : les modules de Node ( https://dupontnodejs.blogspot.com/p/modules.html )

Commencez avec npm  : Start with npm

Les dernières nouveautés du Langage.

🥷CJM versus ESM

🥇High level await 

Entrainement à l'examen : Test 🕑minutes

const languageSkills = [
  {
    language: "Spanish",
    skill: "Professional Proficiency",
  },
  {
    language: "English",
    skill: "Professional Working Proficiency",
  },
  {
    language: "German",
    skill: "Professional Proficiency",
  },
];
const output = languageSkills.reduce((map, { language, skill }) => {
  if (map.has(skill)) map.get(skill).push(language);
  else map.set(skill, [language]);
  return map;
}, new Map());

console.log(...output);

 Que vaut output ?