11484 sujets

JavaScript, DOM et API Web HTML5

Bonjour! j'ai fait un fichier data.txt et j'aimerais lire chaque lignes une par une en javascript.
j'ai cherché sur internet mais je n'ai rien trouvé que j'arrivais à faire marcher ...
Merci beaucoup et bonne soirée!
Modérateur
Et l'eau,


import Controller from 'Core/Controller';
import { readFileSync } from 'fs';

class PagesController extends Controller{
    home(req, res){
        let file_text = WWW_PATH + '/data.txt';
        readFileSync(file_text, 'utf8', (err, data)=>{
            context = {
                "data": data.split("\n")
            };
            res.render('pages/index', context);
        });
    }
}


Là où je veux en venir, regarde du côté de "readFileSync" . Tu as aussi "promise/readFile" ou "readFile" (à éviter tout de même) tout simplement.
Modifié par niuxe (06 Mar 2021 - 10:17)
Modérateur
Rodolphe a écrit :
En local avec Node.js ou en front dans le navigateur ?


tu ne peux pas en front navigateur et en local, je n'en vois pas l'intérêt. Tu ne peux que serveur sauf erreur de ma part.
Modifié par niuxe (06 Mar 2021 - 15:40)
Modérateur
Oh mon dieu, Smiley eek de l'ajax....


Smiley confused
solution 1

(()=>{
    let xhr = new XMLHttpRequest(),
        file = "/data.txt"; //public/data.txt

    xhr.addEventListenet('readystatechange', e =>{
        if(xhr.readyState == 4 && xhr.status == 200){
            console.log('data >>>', xhr.responseText.split("\n"));
        }else{
            console.error('>>>>', "error ajax (mettre son message erreur)")
        }
    });

    xhr.open('GET', file, true);
    xhr.send();
})()


solution2

(()=>{
    fetch('/data.txt').then(response => {
        if(response.ok){
            let rows = response.text().split("\n");
        }
    })
})()


solution 3 (jQuery)

$.get( "/data.txt", function( data ) {
  console.log('data >>>',data.split("\n"));
});
// il y aussi $.ajax et comme l'a précisé Rodolphe, $.load aussi ! 


* j'ai écrit ça de tête. Il se peut qu'il y ait une erreur qui se soit glissée


Ce qui m'a induit en erreur, j'ai répondu à un sujet où il faut écrire dans un fichier texte. Pour le coup, tu ne peux pas en local/navigateur. Dans ce cas-là, il va falloir passer par le serveur.


Pour les solutions que je propose, vzytoi voit plusieurs manières de le faire en JS.

Merci Rodolphe d'avoir soulevé mon erreur. Smiley confused
Modifié par niuxe (07 Mar 2021 - 19:48)