Využití NodeJS pro Javisty - jOpenSpace 20146. 6
var request = require('supertest');
var base = require('../base.js');
request = request(base.baseUrl);
describe('úložiště obrázky', function() {
it('poskytuje uložený obsah dle uri', function(done) {
request
.get('/storage/pictures/logo.jpg‚)
.auth(base.user,base.pass)
.expect('Content-Type', /image/)
.expect('Cache-Control', /600/)
.expect(200, done);
})
});
7. 7
var request = require('supertest'); var base = require('../base.js');
var cheerio = require('cheerio'); var should = require('should');
request = request(base.baseUrl);
describe('Úvodní stránka', function() {
before(function(done) {
request.get('/homepage.html').auth(base.user,base.pass)
.end(function(err, res) {
if (err) return done(err);
this.doc = cheerio.load(res.text); done();
}.bind(this));
});
it('obsahuje zprávy za 1-10dní', function() {
this.doc('#middle').find('.one-day-line').length
.should.within(1,10);
});
});
12. 12
• Založení projektu – edeecms generátor
• Načte developer settings
• Provede git pull kostry projektu
• Zeptá se na vlastnosti projektu, výběr modulů
• Dle výběru zkopíruje složky z kostry
• Vygeneruje heslo do db
• Založí databázi
• Stáhne základní závislosti pro další provoz
• Modifikace projektu – subgenerátor
• Přidání modulu
• Založení databáze
17. 17
> grunt deployWar
sshexec: {
deployWar: {
command: [
'cd <%= projectRoot %>/<%= warRoot %>',
'mv ./<%= expandedWar %>'+
' ./backup/<%= expandedWar %>'+
'<%= grunt.template.today("yyyymmdd-HHMMss") %>',
'rm -rf ./<%= expandedWar %>/',
'unzip -o ./<%= warFile %>'+
' -d ./<%= expandedWar %>',
'rm ./<%= warFile %>',
'find ./backup/ -maxdepth 1 -ctime +3 | xargs rm -rf'
].join(' && '),
options: { config: 'sshsettings' }
}}
Editor's Notes Reálné use casy použití
Doplnit možnosti Vaší aplikace Nodejs stojí za pozornost
Mladá technologie
NodeJS staví na JS enginu Google V8
Míří na síťové aplikace, rest API apod., silné jsou i webové aplikace
Kolem V8 jsou async IO API NodeJS je používán pro workflow v rámci webdevelopmentu
Pokud nepoužíváte, měli byste vyzkoušet Jednoduchá instalace
Na výběr je několik test runnerů – Jasmine, Mocha, Karma Jednoduchý test hlaviček Snadno parsovat stránku Oproti javě je instalace dotaženější v integraci na cli
NPM install -g
Založení projektu
Mvn archetype sucks
Založení projektu pomocí yeoman umí řešit i složitější porces
Příklad pro založení Edee CMS projektu Změny lze diffnout Task runner
Primárně build js, css
Pomocí grunt tasku lze stáhnout webovou aplikaci s embedovaným Tomcat, rychlé spoustění projektu bez konfigurace Grunt task na deployment pomocí ssh Nabízí se pro poskytování služeb pro testery, technické uživatele aplikace
Rozšíříte si obzory – díky tomu můžete přijít s něčím novým