Лишь немногие разработчики знают, что Total.js framework можно использовать без веб-сервера. Да, Total.js framework действительно отличный помощник для разработчика или администратора.
Установка
Установка очень проста, и вы можете сделать это менее чем за минуту.
- если у вас нет платформы Node.js, установите ее
- затем установите Total.js как глобальный модуль, откройте терминал и запустите
$ npm install -g total.js
Функциональность
Если у вас установлен Total.js framework, то в вашем распоряжении небольшой канон:
- способы создания запросов
- функции для работы с изображениями
- Минификации JavaScript, CSS и HTML
String
операцийNumber
операцийDate
операцийArray
операций- инструменты для парсинга данных
- функции для отправки электронной почты и проверки SMTP-серверов
- асинхронные инструменты
Всегда добавляйте require('total.js')
.
Разбор XML
Размер XML не ограничен, все передается в потоковом режиме.
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 contains parsed XML ELEMENT STRING var item = element.parseXML(); console.log(item['CD.ARTIST'], item['CD.PRICE'].parseFloat()); })); });
Разбор CSV-файла
Размер CSV не ограничен, все транслируется.
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]); })); });
Выполнение запросов с помощью RESTBuilder
require('total.js')
RESTBuilder.make(function(builder) { // builder === instance of RESTBuilder builder.url('https://api.yourdomain.com/users/create/'); builder.header('X-Token', '34873947A9D79A7937493749'); builder.post({ firstname: 'Peter', lastname: 'Sirka', web: 'https://www.totaljs.com' }); builder.exec(function(err, response) { console.log(response.success); }); });
Отправка писем
require('total.js');
var mail = Mail.create('Subject', 'HTML body'); mail.to('[email protected]'); mail.send('SMTP HOST', { user: 'XXX', password: 'XXX', timeout: 2000 });
Вы хотите удалить диакритические знаки из файла?
const Fs = require('fs'); require('total.js');
Fs.readFile('somefile.txt', function(err, data) { Fs.writeFile('somefile.txt', data.toString('utf8').removeDiacritics(), NOOP); });
Список каталогов и файлов
require('total.js');
U.ls('/some/path/to/directory/', function(directories, files) { // directories = contains all directories // files = contains all files console.log(directories, files); });
// If you need more details use U.ls2() which returns lists of objects (created date, modified date, length, etc.)
Изменение размера изображений
Вам необходимо установить GraphicsMagick или ImageMagick, прежде чем вы сможете использовать изменение размера.
require('total.js');
// Image.load('picture.jpg', true === imageMagick or false === grapchismagick); Image.load('picture.jpg', false).make(function(image) { image.resize(200, 200); image.quality(90); image.minify(); image.save('resized.jpg'); });
Вам нужна небольшая встроенная база данных NoSQL?
- Документация для встраиваемых систем NoSQL
- данные хранятся в текущем каталоге, например
current-directory/databases/users.nosql
require('total.js')
NOSQL('users').find().make(function(filter) { filter.where('age', '>', 20); filter.where('confirmed', true); filter.callback(function(err, response) { console.log(err, response); }); });
NOSQL('users').insert({ age: 32, firstname: 'Peter', lastname: 'Sirka', created: new Date(), confirmed: true });
Минимизация JS, CSS и HTML
require('total.js');
// minify JavaScript console.log(U.minifyScript('var a = 1 + 1;'));
// minify CSS console.log(U.minifyStyle('body { margin: 5px; font-family: Arial; }'));
// minify HTML // when HTML contains inline JS or CSS then the content is minified too console.log(U.minifyHTML('<div>A</div> <div>B</div>'));
МД5, ША1, ША256, ША512
require('total.js');
console.log('123456'.md5()); console.log('123456'.sha1()); console.log('123456'.sha256()); console.log('123456'.sha512());
Назначить значения в соответствии с путем
require('total.js');
// long var obj = {}; obj.address = {}; obj.address.city = {}; obj.address.city.name = 'Banska Bystrica';
// much shorter var obj = {}; U.set(obj, 'address.city.name', 'Banska Bystrica');
console.log(obj); console.log(U.get(obj, 'address.city.name'));
Встроенная проверка
require('total.js');
var email = '[email protected]'; 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());
Простой механизм шаблонов строк
Вы также можете использовать 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 }));
// or simple format string.format() in C# style 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
Если у вас установлен Total.js как глобальный модуль, вы можете использовать терминальное приложение Total.js.
$ totaljs --help
Встроенный веб-сервер со списком каталогов
Приведенная ниже команда запускает веб-сервер на порту 8000
, а каталог public
будет текущим каталогом, поэтому все файлы будут доступны по протоколу http
. Веб-сервер пытается найти файл index.html
, и если файл не существует, выполняется листинг каталога.
$ cd some-directory
$ totaljs 8000
Минимизируйте JS, CSS или HTML
$ totaljs --compress some-file.js
Документация
Нравится пост? Подробнее о возможностях читайте в документации:
Поддержите нас на Total.js GitHub и в социальных сетях.
Источник: https://blog.totaljs.com/blogs/tutorials/ 20161103-всего-js-как-помощник-без-веб-сервера/