- Updated document on February 19, 2020
- Un exemple de base pour lire un fichier de manière asynchrone avec le package async.
- Deux scénarios possibles de traitement d'erreur pour exemple.
En ligne de commande :
- Pour installer les packages
> npm install
- Pour démarrer l’application
> node readfile.js
(ci-dessous avec récupération de données à partir de fichiers json)
// Objet qui contient les url des fichiers json à traiter
const objectDatas = {data0 : '/datas/data0.json', data1 : '/datas/data1.json'};
var configs = {};
/**
* @function forEachOf - Parcourt un à un les éléments et transmet les données.
* @param {} objectDatas - Liste des URLs des fichiers
* @param {} value - Donnée transmise
* @param {} key - string | number
* @param {} callback - Convention d'utilisation pour les rappels en JavaScript
*/
async.forEachOf(objectDatas, (value, key, callback) => {
fs.readFile(__dirname + value, "utf8", (erreur, pathData) => {
if (erreur) return callback(erreur);
try {
// Converti en json l'objet récupéré
configs[key] = JSON.parse(pathData);
console.log('Les informations du fichier "' + key + '" ont été transmises et sont :');
console.log(configs[key]);
} catch (e) {
// Retourne le message d'erreur s'il y a un problème à la lecture des données
return callback(e);
}
// Retourne le résultat
callback();
});
}, erreur => {
if (erreur) {
// Récupère tout les messages d'erreur et les affiche dans la console
console.log('Le message est :');
console.log(erreur.message);
/* Une métode peut être implémentée à partir de l'objet configs selon la ou les situation(s) */
//creerFonctionAvec(configs);
}
(ci-dessous deux exemples d'erreurs possibles)
Il est généralement soulevé par les opérations fs pour indiquer qu'un composant du chemin spécifié n'existe pas.
- Exemple d'une erreur lié au chemin d'accès implémenté dans le fichier ./readfile.js :
// Objet qui contient les url des fichiers json à traiter
const objectDatas = {
/* Une mauvaise url est en place pour l'attribut data0 */
data0 : '/mauvaise/url/data.json',
data1 : '/datas/data1.json'
};
- Résultat dans la console à partir de
console.log(erreur)
:
{ Error: ENOENT: no such file or directory, open '/mauvaise/url/data.json'
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: '/mauvaise/url/data.json' }
Il indique qu'un programme n'est pas du JavaScript valide.
- Exemple d'erreur de syntaxe implémenté dans le fichier ./datas/data0.json :
{
/* Il manque la virgule à la fin de la prem!ère ligne */
"id": 0
"name": "data0"
}
- Résultat dans la console à partir de
console.log(erreur)
:
SyntaxError: Unexpected string in JSON at position 14
at JSON.parse (<anonymous>)
at fs.readFile (/Users/stephane/Desktop/Projets/nodejs-example-async-git/readfile.js:24:27)
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:511:3)
- Pour plus d'information sur les types d'erreur dans nodejs, suivre le lien ci-dessous : https://nodejs.org/api/errors.html