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.
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: