O que é o Express.js?

439

Eu sou um aprendiz em Node.js .

  1. O que é o Express.js ?
  2. Qual é o objetivo disso com o Node.js?
  3. Por que realmente precisamos do Express.js? Como é útil usarmos o Node.js?
  4. O que é Redis ? Ele vem com o Express.js?
vinod
fonte
28
Role para baixo até a resposta do wiki da comunidade (que possui +50 de recompensa). Achei isso mais útil do que a resposta marcada.
Shishir Gupta

Respostas:

266

Isso acabou simplificando, mas Express.js é para Node.js o que Ruby on Rails ou Sinatra é para Ruby .

O Express 3.x é uma estrutura de aplicativo da web leve para ajudar a organizar seu aplicativo da web em uma arquitetura MVC no lado do servidor. Você pode usar uma variedade de opções para o seu idioma de modelos (como EJS , Jade e Dust.js ).

Você pode usar um banco de dados como o MongoDB com o Mongoose (para modelagem) para fornecer um back-end para o aplicativo Node.js. O Express.js basicamente ajuda você a gerenciar tudo, desde rotas, até solicitações e visualizações.

Redis é um armazenamento de chave / valor - normalmente usado para sessões e armazenamento em cache em aplicativos Node.js. Você pode fazer muito mais com isso, mas é para isso que estou usando. Eu uso o MongoDB para relacionamentos mais complexos, como item de linha <-> ordem <-> relacionamento com o usuário. Existem módulos (principalmente o connect-redis) que funcionarão com o Express.js. Você precisará instalar o banco de dados Redis no seu servidor.

Aqui está um link para o guia Express 3.x: https://expressjs.com/en/3x/api.html

chovy
fonte
20
Express é mais parecido com sinatra do que com trilhos.
half
11
Express foi especificamente inspirado em sinatra. Provavelmente, sua característica mais importante é o roteamento; também disponibiliza todo o middleware fornecido pelo connect (até o ponto em que todos os aplicativos, exceto os mais especializados que precisam do middleware do connect, provavelmente usarão express).
ebohlman
Eu diria que o redis é ideal para relacionamentos complexos de fato.
mais-
O link EJS está morto no momento.
David Spector
Realmente não entendo como o MVC se relaciona com o Express. Se bem me lembro, o Express não tem modelos nem vistas. É uma estrutura baseada em middleware, e não a estrutura MVC. Por favor, explique isso.
Gherman
382

1) O que é o Express.js?

Express.js é uma estrutura do Node.js. É a estrutura mais popular a partir de agora (a mais estrelada no NPM).

Digite a descrição da imagem aqui.

Ele foi desenvolvido com base na configuração e na simplicidade granular do middleware Connect. Algumas pessoas comparam o Express.js ao Ruby Sinatra versus o volumoso e opinativo Ruby on Rails .

2) Qual é o objetivo disso com o Node.js?

Que você não precisa repetir o mesmo código repetidamente. O 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á que ser reimplementado. Com o Express.js, ele está disponível apenas para você usar.

3) Por que realmente precisamos do Express.js? Como é útil usarmos o Node.js?

A primeira resposta deve responder sua pergunta. Se não, tente gravar um pequeno servidor de API REST no Node.js simples (ou seja, usando apenas módulos principais) e, em seguida, no Express.js. O último levará de 5 a 10 vezes menos tempo e linhas de código.

O que é Redis? Ele vem com o Express.js?

Redis é um armazenamento de valor-chave persistente rápido. Opcionalmente, você pode usá-lo para armazenar sessões com o Express.js, mas não precisa. Por padrão, o Express.js possui armazenamento de memória para sessões. Os redis também podem ser usados ​​para trabalhos na fila, por exemplo, trabalhos de email.

Confira meu tutorial no servidor da API REST com o Express.js .

MVC, mas não por si só

O Express.js não é um framework de 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. pilha.

Alternativas

Outras estruturas do Node.js a serem consideradas ( https://www.quora.com/Node-js/Which-Node-js-framework-is-best-for-building-a-RESTful-API ):

UPDATE: Eu montei esse recurso que ajuda as pessoas a escolher as estruturas do Node.js.: http://nodeframework.com

ATUALIZAÇÃO2: adicionamos algumas estatísticas do GitHub ao nodeframework.com, agora você pode comparar o nível de prova social (estrelas do GitHub) para mais de 30 estruturas em uma página.

insira a descrição da imagem aqui

Pilha completa:

Apenas API REST:

Ruby on Rails como:

Sinatra gosta:

De outros:

Middleware:

Geradores de sites estáticos:

Azat
fonte
Será correto dizer que - Express.js é um módulo Node.js (que você abordou como estrutura na sua primeira linha). Eu ouvi o termo nodeJs com modulebastante frequência. Estrutura dentro de uma estrutura é uma novidade para mim.
RBT
Sim, como na prática, o Express IS é um módulo do Node Package Manager (npm) (também conhecido como pacote), na medida em que é adicionado a um aplicativo como outros módulos do npm. (Se você olhar para a pasta de origem de um aplicativo Node Express, verá uma pasta chamada node_modules. Isso conterá uma subpasta chamada express.) Mas é muito mais útil do que a maioria dos outros módulos fora do npm porque possui um carga de módulos dependentes que fornecem efetivamente ao codificador de aplicativos uma API para tarefas comuns. Estrutura dentro de uma estrutura? É mais como uma estrutura de implementação acoplável a uma estrutura de criação de servidor.
Trunk
15
  1. O que é o Express.js?

O Express.js é uma estrutura de servidor de aplicativos da Web Node.js., projetada para a criação de aplicativos da Web de uma página, várias páginas e híbridos. É a estrutura de servidor padrão de fato para o node.js.

Estruturas construídas no Express.

Várias estruturas populares do Node.js são criadas no Express:

LoopBack: estrutura Node.js de código aberto altamente extensível para criar rapidamente APIs REST dinâmicas de ponta a ponta.

Sails: estrutura MVC para Node.js para criar aplicativos práticos e prontos para produção.

Kraken: camada segura e escalável que estende o Express fornecendo estrutura e convenção.

MEIO: Estrutura JavaScript fullstack opinativa que simplifica e acelera o desenvolvimento de aplicativos da web.

  1. Qual é o objetivo disso com o Node.js?
  2. Por que realmente precisamos do Express.js? Como é útil usarmos o Node.js?

O Express adiciona roteamento simples e suporte ao middleware Connect, permitindo muitas extensões e recursos úteis.

Por exemplo,

  • Quer sessões? Está lá
  • Deseja analisar o corpo do POST / string de consulta? Está lá
  • Quer modelagem fácil através de jade, bigode, ejs, etc? Está lá
  • Deseja um tratamento de erros gracioso que não cause a falha de todo o servidor?
Muhammad Shahzad
fonte
10
  1. Express.js é uma estrutura da Web modular para Node.js
  2. É usado para facilitar a criação de aplicativos e serviços da web
  3. O Express.js simplifica o desenvolvimento e facilita a criação de aplicativos seguros, modulares e rápidos. Você pode fazer tudo isso no Node.js antigo simples, mas alguns erros podem (e vão) surgir, incluindo problemas de segurança (por exemplo, não escapar uma string corretamente)
  4. O Redis é um sistema de banco de dados em memória conhecido por seu desempenho rápido. Não, mas você pode usá-lo com o Express.js usando um cliente redis

Eu não poderia ser mais conciso do que isso. Para todas as suas outras necessidades e informações, o Google é seu amigo.

praetoriaen
fonte
3

ExpressJS é nu-ossos framework de aplicações web em cima do NodeJS.

Ele pode ser usado para criar WebApps, APIs RESTFUL etc. rapidamente.

Suporta vários mecanismos de modelo como Jade, EJS.

O ExpressJS mantém apenas uma funcionalidade minimalista como recursos principais e, como tal, não há ORMs ou DBs suportados como padrão. Mas com um pouco de esforço, os aplicativos expressjs podem ser integrados a diferentes bancos de dados.

Para obter um guia de introdução sobre a criação de aplicativos ExpressJS, consulte o seguinte link:

Tutorial Introdutório do ExpressJS

Rishabh.IO
fonte
3

Express é uma estrutura de módulo para o Nó que você pode usar para aplicativos baseados em servidor (es) que "escutam" todas as solicitações de entrada / conexão dos clientes. Quando você o usa no Node, está apenas dizendo que você está solicitando o uso do arquivo Express incorporado dos seus módulos do Node.

Express é a "espinha dorsal" de muitos aplicativos da Web que possuem back-end no NodeJS. Pelo que sei, seu principal ativo é a disponibilização de um sistema de roteamento que lida com os serviços de "interação" entre dois hosts. Existem muitas alternativas para isso, como o Sails.

Andrei-Cristian Ene
fonte
2

O Express.js é uma estrutura usada para o Nó e é mais comumente usada como um aplicativo da web para o nó js.

Aqui está um link para um vídeo sobre como configurar rapidamente um aplicativo de nó com https://www.youtube.com/watch?v=QEcuSSnqvck expresso

Frostiy
fonte
Explicação impressionante para iniciantes absolutos!
Ankit Pandey
0

Express.js criado por TJ Holowaychuk e agora gerenciado pela comunidade. É uma das estruturas mais populares no node.js. O Express também pode ser usado para desenvolver vários produtos, como aplicativos da Web ou API RESTful. Para obter mais informações, leia o site oficial do expressjs.com.

Rashi Goyal
fonte