¿Qué es Express.js?

439

Soy un principiante en Node.js .

  1. ¿Qué es Express.js ?
  2. ¿Cuál es el propósito de esto con Node.js?
  3. ¿Por qué realmente necesitamos Express.js? ¿Cómo es útil para nosotros usar con Node.js?
  4. ¿Qué es redis ? ¿Viene con Express.js?
vinod
fuente
28
Desplácese hacia abajo hasta la respuesta community-wiki (que tiene +50 de recompensa). Me pareció más útil que la respuesta marcada.
Shishir Gupta

Respuestas:

266

Esto ha terminado de simplificarlo, pero Express.js es para Node.js lo que Ruby on Rails o Sinatra son para Ruby .

Express 3.x es un marco de aplicaciones web ligero para ayudar a organizar su aplicación web en una arquitectura MVC en el lado del servidor. Puede usar una variedad de opciones para su lenguaje de plantillas (como EJS , Jade y Dust.js ).

Luego puede usar una base de datos como MongoDB con Mongoose (para modelar) para proporcionar un back-end para su aplicación Node.js. Express.js básicamente lo ayuda a administrar todo, desde rutas, hasta el manejo de solicitudes y vistas.

Redis es un almacén de clave / valor, comúnmente utilizado para sesiones y almacenamiento en caché en aplicaciones Node.js. Puedes hacer mucho más con eso, pero para eso lo estoy usando. Uso MongoDB para relaciones más complejas, como las relaciones de usuario de línea de pedido <-> orden <->. Hay módulos (más notablemente connect-redis) que funcionarán con Express.js. Deberá instalar Redis base de datos en su servidor.

Aquí hay un enlace a la guía Express 3.x: https://expressjs.com/en/3x/api.html

chovy
fuente
20
Express es más como sinatra en lugar de rieles.
medio
11
Express se inspiró específicamente en sinatra. Probablemente su característica más importante es el enrutamiento; también pone a disposición todo el middleware proporcionado por connect (hasta el punto en que todas las aplicaciones menos especializadas que necesitan el middleware de connect probablemente usen express).
ebohlman
Yo diría que redis es ideal para relaciones complejas, de hecho.
más-
El enlace EJS está actualmente muerto.
David Spector
Realmente no entiendo cómo MVC se relaciona con Express. Si no recuerdo mal, Express no tiene modelos ni vistas. Es un framework basado en middleware, no MVC-framework. Por favor explique esto.
Gherman el
382

1) ¿Qué es Express.js?

Express.js es un marco Node.js. Es el marco más popular a partir de ahora (el más destacado en NPM).

Ingrese la descripción de la imagen aquí.

Se basa en la configuración y la simplicidad granular del middleware Connect. Algunas personas comparan Express.js con Ruby Sinatra frente al voluminoso y obstinado Ruby on Rails .

2) ¿Cuál es el propósito de esto con Node.js?

Que no tienes que repetir el mismo código una y otra vez. Node.js es un mecanismo de E / S de bajo nivel que tiene un módulo HTTP. Si sólo utiliza un módulo HTTP, un montón de trabajo, como el análisis de la carga útil, galletas, almacenamiento de sesiones (en memoria o en Redis ), la selección de la red de rutas de derecho basado en expresiones regulares se tienen que volver a aplicarse. Con Express.js, está ahí para que lo use.

3) ¿Por qué realmente necesitamos Express.js? ¿Cómo es útil para nosotros usar con Node.js?

La primera respuesta debería responder a su pregunta. Si no, intente escribir un pequeño servidor REST API en Node.js simple (es decir, utilizando solo módulos principales) y luego en Express.js. Este último te llevará 5-10 veces menos tiempo y líneas de código.

¿Qué es redis? ¿Viene con Express.js?

Redis es un almacenamiento clave-valor rápido y persistente. Opcionalmente, puede usarlo para almacenar sesiones con Express.js, pero no es necesario. De manera predeterminada, Express.js tiene almacenamiento de memoria para sesiones. Redis también se puede usar para trabajos en cola, por ejemplo, trabajos por correo electrónico.

Consulte mi tutorial sobre el servidor API REST con Express.js .

MVC pero no solo

Express.js no es un marco de modelo-vista-controlador en sí mismo. Debe traer sus propias bibliotecas de mapeo relacional de objetos como Mongoose para MongoDB, Sequelize ( http://sequelizejs.com ) para bases de datos SQL, Waterline ( https://github.com/balderdashy/waterline ) para muchas bases de datos en el apilar.

Alternativas

Otros marcos de Node.js para considerar ( https://www.quora.com/Node-js/Which-Node-js-framework-is-best-for-building-a-RESTful-API ):

ACTUALIZACIÓN: armé este recurso que ayuda a las personas a elegir los marcos Node.js: http://nodeframework.com

ACTUALIZACIÓN2: Agregamos algunas estadísticas de GitHub a nodeframework.com para que ahora pueda comparar el nivel de prueba social (estrellas de GitHub) para más de 30 marcos en una página.

ingrese la descripción de la imagen aquí

Completa pila:

Solo REST API:

Ruby on Rails como:

A Sinatra le gusta:

Otro:

Middleware:

Generadores de sitios estáticos:

Azat
fuente
¿Será correcto decir que Express.js es un módulo Node.js (que ha abordado como marco en su primera línea). He escuchado el término nodeJs con modulebastante frecuencia. El marco dentro de un marco es un poco nuevo para mí.
RBT
Sí, como en la práctica, Express IS es un módulo Node Package Manager (npm) (también conocido como paquete) en la medida en que se agrega a una aplicación como otros módulos de npm. (Si observa la carpeta de origen de una aplicación Node Express, verá una carpeta llamada node_modules. Esta contendrá una subcarpeta llamada express). Pero es mucho más útil que la mayoría de los otros módulos fuera del npm porque tiene un carga de módulos dependientes que efectivamente proporcionan al codificador de la aplicación una API para tareas comunes. Marco dentro de un marco? Más parecido a un marco de implementación conectable a un marco de creación de servidor.
Tronco
15
  1. ¿Qué es Express.js?

Express.js es un marco de servidor de aplicaciones web Node.js, diseñado para crear aplicaciones web híbridas y de una sola página. Es el marco de servidor estándar de facto para node.js.

Marcos construidos en Express.

Varios marcos de Node.js populares se basan en Express:

LoopBack: marco Node.js de código abierto altamente extensible para crear rápidamente API REST dinámicas de extremo a extremo.

Velas: marco MVC para Node.js para crear aplicaciones prácticas listas para producción.

Kraken: capa segura y escalable que extiende Express al proporcionar estructura y convención.

SIGNIFICADO: Marco JavaScript completo de opinión que simplifica y acelera el desarrollo de aplicaciones web.

  1. ¿Cuál es el propósito de esto con Node.js?
  2. ¿Por qué realmente necesitamos Express.js? ¿Cómo es útil para nosotros usar con Node.js?

Express agrega enrutamiento simple y soporte para el middleware Connect, permitiendo muchas extensiones y características útiles.

Por ejemplo,

  • ¿Quieres sesiones? Está allá
  • ¿Desea analizar el cuerpo POST / cadena de consulta? Está allá
  • ¿Quieres plantillas sencillas a través de jade, bigote, ejs, etc.? Está allá
  • ¿Desea un manejo de errores elegante que no haga que se bloquee todo el servidor?
Muhammad Shahzad
fuente
10
  1. Express.js es un marco web modular para Node.js
  2. Se utiliza para facilitar la creación de aplicaciones y servicios web.
  3. Express.js simplifica el desarrollo y facilita la escritura de aplicaciones seguras, modulares y rápidas. Puede hacer todo eso en el antiguo Node.js, pero algunos errores pueden (y lo harán) aparecer, incluidas las preocupaciones de seguridad (por ejemplo, no escapar de una cadena correctamente)
  4. Redis es un sistema de base de datos en memoria conocido por su rápido rendimiento. No, pero puede usarlo con Express.js usando un cliente redis

No podría ser más conciso que esto. Para todas sus otras necesidades e información, Google es su amigo.

praetoriaen
fuente
3

ExpressJS es básico marco de aplicación web en la parte superior de NodeJS.

Se puede usar para crear WebApps, API RESTFUL, etc. rápidamente.

Admite múltiples motores de plantillas como Jade, EJS.

ExpressJS mantiene solo una funcionalidad minimalista como características principales y, como tal, no hay ORM o DB compatibles de forma predeterminada. Pero con un poco de esfuerzo, las aplicaciones expressjs se pueden integrar con diferentes bases de datos.

Para obtener una guía de inicio sobre la creación de aplicaciones ExpressJS, consulte el siguiente enlace:

Tutorial introductorio de ExpressJS

Rishabh.IO
fuente
3

Express es un marco de módulos para Node que puede usar para aplicaciones basadas en servidores que "escucharán" cualquier solicitud de entrada / conexión de los clientes. Cuando lo usa en Node, solo dice que está solicitando el uso del archivo Express incorporado de sus módulos Node.

Express es la "columna vertebral" de muchas aplicaciones web que tienen su back-end en NodeJS. Por lo que sé, su principal activo es la providencia de un sistema de enrutamiento que maneja los servicios de "interacción" entre 2 hosts. Hay muchas alternativas para ello, como Sails.

Andrei-Cristian Ene
fuente
2

Express.js es un marco utilizado para Node y se usa más comúnmente como una aplicación web para el nodo js.

Aquí hay un enlace a un video sobre cómo configurar rápidamente una aplicación de nodo con https://www.youtube.com/watch?v=QEcuSSnqvck express

Frostiy
fuente
¡Explicación impresionante para principiantes absolutos!
Ankit Pandey
0

Express.js creado por TJ Holowaychuk y ahora administrado por la comunidad. Es uno de los marcos más populares en el node.js. Express también se puede utilizar para desarrollar diversos productos, como aplicaciones web o API RESTful. Para obtener más información, lea el sitio oficial expressjs.com.

Rashi Goyal
fuente