Peter Širka - Brutal Web Developer
Total.js ako pomocník bez webového servera

Sun Sep 04 2016 21:13:07 GMT+0200 (Central European Summer Time)

Total.js ako pomocník bez webového servera

Skutočne iba málo vývojárov vie o tom, že Total.js sa dá použiť aj bez webového servera. Áno, Total.js framework je skutočný pomocník - či už pre vývojára alebo administrátora.

Inštalácia

Inštalácia je veľmi jednoduchá a nezaberie Vám viac ako 1 minútu.

  • ak nemáte, tak si stiahnite platformu Node.js
  • nainštalujte si Total.js ako globálny modul, otvorte terminál a píšte: $ npm install -g total.js

Funkčnosť

Ak máte Total.js nainštalovaný, tak máte teraz k dispozícii kanón na vrabce:

  • metódy na tvorbu requestov
  • funkcie na manipuláciu s obrázkami
  • JavaScript, CSS and HTML minifikácie
  • String operácie
  • Number operácie
  • Date operácie
  • Array operácie
  • nástroje na parsovanie údajov
  • funkcie na odoslanie emailu alebo overenie funkčnosti SMTP servera
  • asynchrónne nástroje

Každý Node.js script musí obsahovať require('total.js').


Parsujeme XML

Veľkosť XML nie je limitovaná, všetko sa streamuje.

require('total.js');

U.download('http://www.w3schools.com/xml/cd_catalog.xml', ['get'], function(err, response) {
    response.on('data', U.streamer('<CD>', '</CD>', function(element, index) {
        // element obsahuje vyparsovaný XML ELEMENT STRING
        var item = element.parseXML();
        console.log(item['CD.ARTIST'], item['CD.PRICE'].parseFloat());
    }));
});

Parsujeme CSV

Veľkosť CSV nie je limitovaná, všetko sa streamuje.

require('total.js');

U.download('http://www.sample-videos.com/csv/Sample-Spreadsheet-1000-rows.csv', ['get'], function(err, response) {
    response.on('data', U.streamer('\n', function(line, index) {
        var arr = line.split(',');
        console.log(arr[1]);
    }));
});

Odosielanie emailu

require('total.js');

var mail = Mail.create('Predmet', 'HTML body');
mail.to('petersirka@gmail.com');
mail.send('SMTP HOST', { user: 'XXX', password: 'XXX', timeout: 2000 });

Potrebujete odstrániť diakritiku zo súboru?

const Fs = require('fs');
require('total.js');

Fs.readFile('nejakyfile.txt', function(err, data) {
    Fs.writeFile('nejakyfile.txt', data.toString('utf8').removeDiacritics(), NOOP);
});

Listujeme adresáre a súbory

require('total.js');

U.ls('/nejaka/cesta/na/adresar/', function(directories, files) {
    // directories = obsahujú všetky adresáre
    // files = obsahuje názvy súborov
    console.log(directories, files);
});

// Existuje ešte aj U.ls2() a tá v zozname vracia objekt s informáciou o súbore

Resizujeme obrázky

Pred použitím nižšie uvedeného kódu potrebujete mať nainštalovaný GraphicsMagick alebo ImageMagick.

require('total.js');

// Image.load('obrazok.jpg', true === imageMagick else false === grapchismagick);
Image.load('obrazok.jpg', false).make(function(image) {
    image.resize(200, 200);
    image.quality(90);
    image.minify();
    image.save('resized.jpg');
});

Minifikujeme JS, CSS alebo HTML

require('total.js');

// minifikujeme JavaScript
console.log(U.minifyScript('var a = 1 + 1;'));

// minifikujeme CSS
console.log(U.minifyStyle('body { margin: 5px; font-family: Arial; }'));

// minifikujeme HTML
// ak HTML obsahuje inline JS alebo CSS tak to je minifikované tiež
console.log(U.minifyHTML('<div>A</div>    <div>B</div>'));

MD5, SHA1, SHA256, SHA512

require('total.js');

console.log('123456'.md5());
console.log('123456'.sha1());
console.log('123456'.sha256());
console.log('123456'.sha512());

Dynamické vytváranie vlastností v objektoch

require('total.js');

var obj = {};

U.set(obj, 'user.name', 'Peter');
U.set(obj, 'address.city.name', 'Banská Bystrica');

console.log(obj);
console.log(U.get(obj, 'address.city.name'));

Vstavané validácie

require('total.js');

var email = 'petersirka@gmail.com';
var email_invalid = 'petersirka';
console.log(email.isEmail(), email_invalid.isEmail());

var phone = '+421903163302';
var phone_invalid = '349834';
console.log(phone.isPhone(), phone_invalid.isPhone());

var url = 'https://www.google.com';
var url_invalid = 'aldskjaljdadsôakjd';
console.log(url.isURL(), url_invalid.isURL());

var zip = '97401';
var zip_invalid = '34983983';
console.log(zip.isZIP(), zip_invalid.isZIP());

Jednoduché templatetovanie stringu

Mimo nižšie uvedeného templatetovania je možné využiť aj vstavaný Total.js View Engine.

require('total.js');

var string = 'My name is {{ name }}. Created: {{ created | dd.MM.yyyy }} and credits: {{ credits | ## ### }} credits.';
console.log(string.params({ name: 'Peter', created: new Date(), credits: 1000 }));

// alebo jednoduchý string.format() na štýl C#
var string_format = 'My name is {0} and current date time is: {1}.';
console.log(string_format.format('Peter', new Date().format('dd.MM.yyyy HH:mm'));

Total.js terminálová aplikácia

Pokiaľ máte Total.js nainštalovaný ako globálny modul, tak môžete využiť aj Total.js terminálovú aplikáciu.

$ totaljs --help

Vstavaný webový server s directory listing

Nižšie uvedený príkaz spustí webový server na porte 8000 a ako public adresár bude aktuálny adresár, takže všetky súbory budú dostupné cez http. Webový server hľadá v adresáry súbor index.html a pokiaľ neexistuje, tak zobrazí directory listing.

$ cd adresar
$ totaljs 8000

Minifikácia JS, CSS alebo HTML

$ totaljs --compress nejakysubor.js

Dokumentácia

Ak Vás zaujal tento blog a viete si predstaviť, že by ste využili Total.js pre malé scripty, tak doporučujem preštudovať všetky funkcie v dokumentácii:


Značky


Posledné blogy
Brutálny polrok 2018
Fri Jun 22 2018 09:48:21 GMT+0200 (Central European Summer Time)
Konferencia/Workshop: TotalCon 2017
Thu Nov 16 2017 22:06:55 GMT+0100 (Central European Standard Time)
CodeCon 2017 z pohľadu organizátora
Sun Apr 09 2017 09:27:34 GMT+0200 (Central European Summer Time)
Elektrický bicykel KTM MACINA KAPOHO SLX 2017
Fri Mar 31 2017 15:32:37 GMT+0200 (Central European Summer Time)
Total.js platforma - školenia
Mon Jan 16 2017 18:35:05 GMT+0100 (Central European Standard Time)

Posledné komentáre
Thank you for your work! You are the great friend, great person and great expert!
Jozef Gula
Mon Jun 25 2018 08:02:14 GMT+0200 (Central European Summer Time)
It's been an absolute pleasure collaborating with you Peter, I've learned so much from Total.js a...
Pedro Costa
Fri Jun 22 2018 19:18:22 GMT+0200 (Central European Summer Time)
Tento skateboard až tak kopec nerieši, pretože má 2 silné motory. So mnou vyšiel všade, kde som b...
Peter Širka
Fri Jul 14 2017 09:30:56 GMT+0200 (Central European Summer Time)
Dobry den jak se vypořadavá s kopci ?
Lukáš
Thu Jul 13 2017 20:44:43 GMT+0200 (Central European Summer Time)
Chlapci z firmy Nazaret Pánu Bohu ďakujú a Tebe blahoželajú k dobre odvedenej práci. Super Peťo, ...
Tomáš
Thu Dec 15 2016 08:08:15 GMT+0100 (Central European Standard Time)