8 gru 2019

Losowa linia z pliku - nodejs

Coś na szybko a mianowicie pobranie losowej linii z pliku w nodejs.
Nasz plik wygląda tak jak poniżej.

github
gmap
google
google adsens
grid
gulp workflow
hamburger
hex na rgb
hosting
htaccess
html
http

Plik ten powiedzmy że będzie nazywać się words.txt Teraz czas na js, plik nazwiemy getRandomLine.js

const { readFileSync } = require('fs');

const randomLine = pathToFile => {
  const content = readFileSync(pathToFile, 'utf8');
  const lines = content.split('');
  const randomLine = lines[Math.floor(Math.random() * lines.length)];
  return randomLine;
}

module.exports = randomLine;

Nie będę się zagłębiał w kod bo jest dość oczywisty, do funkcji przekazujemy pathToFile czyli ścieżkę do pliku. Jedynym wyjątkiem jest readFilesync bo jak zwykle jest zależne od środowiska (macOS, Linux, Windows czy nawet FreeBSD) warto się zaznajomić z dokumentacją.

Aby użyć tą funkcję tworzę plik powiedzmy index.js:

const randomLine = require('./modules/getRandomLine');
const pathToWords = `./words.txt`;

const random = randomLine(pathToProxy);
console.log(random);

Można to oczywiście połączyć w całość, ale lepiej zrobić to modułowo, aby można było ten kod użyć w wielu miejscach 😉
A wywołać w konsoli w poniższy sposób:

node index.js

W wyniku dostaniemy losową linię z pliku.