1) O que é Express.js?
Express.js é uma estrutura Node.js. É o framework mais popular até agora (o mais estrelado no NPM).
.
Ele é construído em torno da configuração e simplicidade granular do middleware Connect. Algumas pessoas comparam Express.js a Ruby Sinatra versus o volumoso e opinativo Ruby on Rails.
2) Qual é o propósito disso com o Node.js?
Que você não precisa repetir o mesmo código várias vezes. Node.js é um mecanismo de E/S de baixo nível que possui um módulo HTTP. Se você usar apenas um módulo HTTP, muito trabalho, como analisar a carga útil, cookies, armazenar sessões (na memória ou no Redis), selecionar o padrão de rota correto com base em expressões regulares terá a ser reimplementado. Com o Express.js, ele está lá para você usar.
3) Por que realmente precisamos do Express.js? Como é útil para nós usarmos com Node.js?
A primeira resposta deve responder à sua pergunta. Se não, tente escrever um pequeno servidor de API REST em Node.js simples (ou seja, usando apenas módulos principais) e depois em Express.js. O último levará de 5 a 10 vezes menos tempo e linhas de código.
O que é Redis? Vem com Express.js?
O Redis é um armazenamento de valor-chave persistente rápido. Opcionalmente, você pode usá-lo para armazenar sessões com Express.js, mas não é necessário. Por padrão, o Express.js tem armazenamento de memória para sessões. O Redis também pode ser usado para enfileirar trabalhos, por exemplo, trabalhos de e-mail.
Confira meu tutorial sobre servidor de API REST com Express.js.
MVC, mas não por si só
Express.js não uma estrutura model-view-controller por si só. Você precisa trazer suas próprias bibliotecas de mapeamento objeto-relacional, como Mongoose para MongoDB, Sequelize (http://sequelizejs.com) para bancos de dados SQL, Waterline (https://github.com/balderdashy/waterline) para muitos bancos de dados no pilha.
Alternativas
Outras estruturas Node.js a serem consideradas (https://www.quora.com/Node-js/Which-Node-js-framework-is-best-for-building-a-RESTful-API):
ATUALIZAÇÃO:Eu montei este recurso que ajuda as pessoas a escolher os frameworks Node.js:http://nodeframework.com
UPDATE2:Adicionamos algumas estatísticas do GitHub ao nodeframework.com, então agora você pode comparar o nível de prova social (estrelas do GitHub) para mais de 30 frameworks em uma página.
Pilha completa:
-
http://sailsjs.org
-
http://derbyjs.com/
Apenas API REST:
- http://mcavage.github.io/node-restify/
Ruby on Rails como:
-
http://railwayjs.com/
-
http://geddyjs.org/
Sinatra gosta de:
- http://expressjs.com/
Outro:
-
http://flatironjs.org/
-
https://github.com/isaacs/npm-www
-
http://frisbyjs.com/
Middleware:
- http://www.senchalabs.org/connect/
Geradores de sites estáticos:
-
http://docpad.org
-
https://github.com/jnordberg/wintersmith
-
http://ferreiro.jit.su/
-
https://github.com/felixge/node-romulus
-
https://github.com/caolan/petrify