~siegfriedehret/nodejs200

686a132c05d3e7b52bc57c483573953a18a535e4 — Thomas Charlat 6 years ago 1991b82
refactor(exercises/03)
3 files changed, 30 insertions(+), 1 deletions(-)

M 03_fs/README.md
R 03_fs/{run.js => correction.run.js}
M 03_fs/ex03.test.js
M 03_fs/README.md => 03_fs/README.md +25 -0
@@ 0,0 1,25 @@
Écrivez un programme qui utilise les modules `fs` et `path` pour rechercher et afficher dans la console le chemin vers le fichier `coucou.txt`, créer un dossier `jtutu` et y copier le fichier `coucou.txt`

---

## CONSEILS

Les modules nodejs exposent de nombreuses méthodes. Référez vous à la documentation sur le site de node.

[-> fs](https://nodejs.org/api/fs.html)  
[-> path](https://nodejs.org/api/path.html)

Les accès au système de fichier peuvent être synchrones ou asynchrones.

```javascript
  // sync
  const contenuDuDossier = fs.readdirSync('/chemin/du/fichier');
```
```javascript
  // async
  fs.readdir('/chemin/du/fichier', (erreur, contenuDuDossier) => {
      // suite du code
  });
```

Utiliser les api asynchrones peut être déroutant, les callback imbriqués peuvent rendre le projet complexe, voir provoquer le redouté [callback hell](http://callbackhell.com/)

R 03_fs/run.js => 03_fs/correction.run.js +1 -1
@@ 16,6 16,6 @@ fs.mkdir(folder, function(err) {

    fs.writeFile(toPath, data, options, (err) => {
      if (err) throw err;
    })
    });
  });
});

M 03_fs/ex03.test.js => 03_fs/ex03.test.js +4 -0
@@ 11,6 11,10 @@ describe('Exercice 3', () => {
        rm(path.resolve(__dirname, 'jtutu'), done);
    });

    after((done) => {
        rm(path.resolve(__dirname, 'jtutu'), done);
    });

    it('Créez un ficher "run.js"', () => {
        assert(fs.existsSync(path.join(__dirname, 'run.js')), 'Le fichier "run.js" est manquant');
    });