Web Frameworks

em NodeJS

Criado por Victor Perin

Quem sou eu?


Oi, sou Victor Perin.

Sou Desenvolvedor Back-End na PrinciWeb e um dos mentores do NodeSchool Campinas.

Node Web

As an asynchronous event driven framework, Node.js is designed to build scalable network applications.

var http = require('http');

var callback = function(req, res) {
  res.end('Ola mundo!');
};

http.createServer(callback).listen(1337, '127.0.0.1');
						

Então, porque existem frameworks?

NodeJS > Node Frameworks

Você vai escrever menos código.

Exemplo de código SEM frameworks


var http = require('http');
var fs = require('fs');

console.log('Servidor ouvindo na porta 1337!');
http.createServer(function(request, response) {
  if (request.url == '/') {
    response.writeHeader(200, {'Content-Type': 'text/html'});
    fs.createReadStream('./index.html').pipe(response);
  } else {
    fs.stat('.' + request.url, function(err, status) {
      if (!err && status.isFile()) {
        response.writeHeader(200);
        fs.createReadStream('.' + request.url).pipe(response);
      } else {
        response.writeHeader(404);
        response.end('Arquivo nao encontrado.');
      }
    });
  }
}).listen(1337, '127.0.0.1');
						

ExpressJS

O framework minimalista.

Fundamentos

  • Velocidade de desenvolvimento
  • Simplicidade
  • "Anti-imperialista"

Exemplo


var express = require('express');
var app = express();

app.use('/', express.static('./'));

var server = app.listen(1337, function() {
  console.log('Servidor ouvindo na porta 1337!');
});
						

Vantagens comparadas com o código anterior

  • Reconhece parâmetros de url e ignora;
  • Requisições (POST, PUT, etc) são bloqueadas;
  • Reconhece e retorna corretamente o 'Content-Type';
  • Maior Estabilidade;
  • É MENOR!!!1!

Mas é só o Express?

Apresentando: NodeFramework.com

Sinatra-like

Estes frameworks são poucos opnativos e oferecem uma configuração rica.

  • Express
  • Hapi
  • Flatiron
  • Locomotive
  • Total.js
  • Koa.js
  • TWEE.IO
  • Diet.js

Rails-like

Apresentar seu projeto corretamente. Crie a sua própria arte a partir de templates.

  • CompoundJS
  • geddy
  • Sails.js
  • Adonis
  • RhapsodyJS
  • Strapi

Full-stack frameworks

Algumas das pedras preciosas do node. São construídos com Scaffold, Template Engines, WebSocket e bibliotecas de persistência.

Constroem aplicações
real-time escaláveis!

Lista de frameworks Full-Stack

  • Meteor
  • AllcountJS
  • Derby
  • SocketStream
  • MEAN.js
  • MEAN.io
  • TWEE.IO
  • Mojito
  • SANE
  • COKE
  • Sleekjs
  • Danf
  • Catberry
  • Nuke.js
  • We.js

E muito mais!

Menção honrosa: REST API frameworks

PS: Por favor, não tente testar todos...

Mas existem algumas desvantagens

Não aprenda apenas frameworks.

Aprenda JavaScript.

Encontre um equilibrio

Não seja nenhum desses dois:

That's all folks!

Caso precisem, o link para a apresentação estará na página do meetup.

Dúvidas? Sugestões?