využití nodejs pro javisty - jopenspace 2014
TRANSCRIPT
www.fg.cz
Využití NodeJS pro JavistyMichal Franc
2
3
4
5
TESTsnadná instalace
množství test runnerů / frameworků / assert
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
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); });});
8
CLIintegrace do command line
10
Yeoman – YOproject scaffolding
11
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
13
14
Grunttask runner
buildování js, css
15
> grunt server
16
> grunt deployWar
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' }}}
18
NodeJS – npmMocha (Jasmine)YeomanBowerGrunt (Gulp)
19
Proč?