¿Qué es Node.js? Quiero una comprensión clara al respecto.

El nodo Js es un entorno de ejecución o entorno. Es una plataforma de código abierto construida en tiempo de ejecución de Javascript. A través del intérprete súper rápido que se ejecuta en el navegador Chrome, NodeJS permite la programación basada en eventos. Es perfecto para aplicaciones de tiempo real con uso intensivo de datos.

Pros:

  • Le proporciona API de E / S asincrónicas controladas por eventos que le permiten manejar miles de solicitudes concurrentes.
  • Está escrito en Javascript y es extremadamente fácil de aprender si ya conoce Javascript.
  • Podemos usar el mismo código para el lado del servidor y del lado del cliente. Javascript se puede usar tanto en el servidor web como en el navegador.
  • Está bien documentado y respaldado por una comunidad entusiasta.
  • La transmisión de archivos grandes será extremadamente fácil usando NodeJS. Puedes cargar varios archivos al mismo tiempo
  • Es realmente rápido; En comparación con Ruby, es extremadamente rápido.

Contras:

  • Uno debe tener un conocimiento profundo de Javascript para comprender NodeJS. Puede ser difícil para un principiante comenzar con NodeJS sin un conocimiento profundo de Javascript.
  • Es de un solo subproceso, a veces las tareas vinculadas a la CPU pueden causar retrasos. Esta es la razón por la cual NodeJS no se recomienda para sistemas pesados ​​de computación.
  • Las herramientas no están bien documentadas y algunas son de muy mala calidad.

Node.js es V8 (el motor de JavaScript que se ejecuta dentro de Google Chrome) junto con un par de bibliotecas, principalmente para hacer E / S, es decir, escribir archivos y manejar conexiones de red.

Es importante tener en cuenta que Node.js no es un dialecto especial de JavaScript: es simplemente JavaScript moderno y normal, que se ejecuta en todas partes en lugar de solo el navegador.

Node.js permite a los desarrolladores usar JavaScript en todas partes en lugar de solo en los navegadores: los dos principales usos principales a la hora de escribir son los servidores web / de aplicaciones (Node.js es muy adecuado para aplicaciones similares a la mensajería como servidores de chat, por ejemplo) y Internet de las cosas (que se ejecuta dentro de dispositivos tipo Arduino).

Plug descarado: si te gustan mis divagaciones sobre la programación en Quora, puedes disfrutar de mi programa de YouTube: Fun Fun Function

NodeJS es un entorno de tiempo de ejecución, es un software que permite que las aplicaciones escritas en JavaScript se ejecuten en el sistema operativo subyacente.

Para hacerlo, utiliza el motor Javascript V8 de Chrome. V8 está escrito con C ++ y pasa por un conjunto de etapas para interpretar Javascript como lenguaje:

  • Lexer: lee el código fuente, crea tokens a partir de palabras clave e identifica variables y valores;
  • Analizador: analiza la “gramática” (por ejemplo, el reconocimiento de declaraciones de variables / funciones) en función de estos tokens y crea árboles de sintaxis (análisis) para hacerlo;
  • Intérprete: V8 no usa interpretación estándar (traduce cada línea de código fuente en código de máquina línea por línea), pero usa
  • (editado) Un compilador completo que produce código de máquina nativo lo más rápido posible. Produce el “código base”, no usa bytecode y no se enfoca en ninguna optimización;
  • Compilación JIT (justo a tiempo) para aumentar el rendimiento mediante la optimización de funciones activas. Editar: V8 no parece usar bytecode en absoluto;
  • Tiempo de ejecución: Bridging: la información del sistema (por ejemplo, funcionalidad matemática o de tiempo) se lleva al mundo Javascript a través de las bibliotecas del sistema (escritas en C o C ++);
  • Además, V8 agrega optimización de rendimiento al:

    • El uso de clases ocultas para acelerar las búsquedas de diccionario que vienen con objetos Javascript (que es lento por defecto);
    • Aplique etiquetas para representar eficientemente los números cuando cambian los tipos;

    Nota: se recomienda utilizar un conjunto de buenas prácticas al trabajar con V8. Encontré que este es un reloj recomendado:

    En conclusión, permite a las personas ejecutar software escrito en Javascript en el servidor (o en cualquier otro entorno) y expone algunas funciones integradas como parte del tiempo de ejecución.

    Espero que esto haya traído una visión más cercana de la contribución a lo que ya se ha dicho.

    Esto es lo que wikipedia dice al respecto:

    Node.js es un entorno de tiempo de ejecución multiplataforma de código abierto para aplicaciones de red y del lado del servidor. Las aplicaciones de Node.js están escritas en JavaScript y pueden ejecutarse dentro del tiempo de ejecución de Node.js en OS X, Microsoft Windows, Linux, FreeBSD, NonStop, IBM AIX, IBM System z e IBM i. Su trabajo está alojado y respaldado por la Fundación Node.js, un proyecto colaborativo de la Fundación Linux.
    Node.js proporciona una arquitectura basada en eventos y una API de E / S sin bloqueo que optimiza el rendimiento y la escalabilidad de una aplicación. Estas tecnologías se usan comúnmente para aplicaciones web en tiempo real.
    Node.js utiliza el motor JavaScript de Google V8 para ejecutar código, y un gran porcentaje de los módulos básicos están escritos en JavaScript. Node.js contiene una biblioteca incorporada para permitir que las aplicaciones actúen como un servidor web sin software como Apache HTTP Server o IIS.

    Además,
    Node.js

    • es una herramienta de línea de comandos que se puede ejecutar como un servidor web normal y permite ejecutar programas JavaScript
    • utiliza el gran motor V8 JavaScript
    • es muy bueno cuando necesitas hacer varias cosas al mismo tiempo
    • está basado en eventos, por lo que todas las cosas maravillosas similares a Ajax se pueden hacer en el lado del servidor
    • nos permite compartir código entre el navegador y el backend
    • hablemos con MySQL (otros DB).

    Node.js es especialmente adecuado para aplicaciones donde le gustaría mantener una conexión persistente desde el navegador hasta el servidor. Usando una técnica conocida como “sondeo largo”, puede escribir una aplicación que envíe actualizaciones al usuario en tiempo real. Hacer encuestas largas en muchos de los gigantes de la web, como Ruby on Rails o Django, crearía una carga inmensa en el servidor, porque cada cliente activo consume un proceso de servidor. Esta situación equivale a un ataque de tarpit. Cuando usa algo como Node.js, el servidor no necesita mantener subprocesos separados para cada conexión abierta.
    Esto significa que puede crear una aplicación de chat basada en navegador en Node.js que casi no requiere recursos del sistema para atender a una gran cantidad de clientes. Cada vez que desee hacer este tipo de sondeo largo, Node.js es una gran opción.
    Vale la pena mencionar que Ruby y Python tienen herramientas para hacer este tipo de cosas (eventmachine y twisted, respectivamente), pero que Node.js lo hace excepcionalmente bien, y desde cero. JavaScript está excepcionalmente bien situado para un modelo de concurrencia basado en devolución de llamada, y se destaca aquí. Además, ser capaz de serializar y deserializar con JSON nativo tanto para el cliente como para el servidor es bastante ingenioso.
    Vale la pena señalar que Node.js también es ideal para situaciones en las que reutilizará una gran cantidad de código en la brecha cliente / servidor. El marco Meteor hace esto realmente fácil, y mucha gente sugiere que este podría ser el futuro del desarrollo web. Puedo decir por experiencia que es muy divertido escribir código en Meteor, y una gran parte de esto es pasar menos tiempo pensando en cómo va a reestructurar sus datos, por lo que el código que se ejecuta en el navegador puede fácilmente manipúlelo y páselo de vuelta.
    Aquí hay un artículo sobre Pyramid y long-polling, que resulta muy fácil de configurar con un poco de ayuda de gevent: TicTacToe y Long Polling with Pyramid .
    Sus ventajas son:

    1. Desarrollo web en un lenguaje dinámico (JavaScript) en una VM que es increíblemente rápido (V8). Es mucho más rápido que Ruby, Python o Perl.
    2. Capacidad para manejar miles de conexiones concurrentes con una sobrecarga mínima en un solo proceso.
    3. JavaScript es perfecto para bucles de eventos con objetos de función y cierres de primera clase. La gente ya sabe cómo usarlo de esta manera al usarlo en el navegador para responder a eventos iniciados por el usuario.
    4. Mucha gente ya conoce JavaScript, incluso las personas que no afirman ser programadores. Es posiblemente el lenguaje de programación más popular.
    5. El uso de JavaScript en un servidor web y en el navegador reduce la falta de coincidencia de impedancia entre los dos entornos de programación que pueden comunicar estructuras de datos a través de JSON que funcionan igual en ambos lados de la ecuación. El código de validación de formulario duplicado se puede compartir entre el servidor y el cliente, etc.

    Nota al margen : Este video puede dar una introducción sobre Node.JS a principiantes.

    Como todos sabemos, antes de 2009 el JavaScript se usaba para ejecutarse solo dentro de los navegadores web. Pero en 2009 Ryan Dahl creó un entorno de tiempo de ejecución para que JavaScript se ejecute fuera de los navegadores web. Este entorno de tiempo de ejecución se basa en el motor V8 de Chrome y está escrito en lenguaje C ++. El motor Chrome V8 compila JavaScript directamente en el código de máquina nativo, a diferencia de otras técnicas tradicionales como la interpretación de código de bytes para generar código de máquina.

    Por lo tanto, el nodo js es una combinación de este entorno de tiempo de ejecución y otras bibliotecas de JavaScript que se escriben previamente para reducir la carga sobre los desarrolladores y se utilizan para la creación de secuencias de comandos del lado del servidor.

    Algunas de las características de Node js son,

    • Asincrónico
    • I / 0 sin bloqueo
    • Evento conducido
    • Rosca simple
    • Rápido
    • modularidad

    Al leer el siguiente contexto, podrá comprender qué significan las características anteriores,

    Primero, comprendamos cómo funcionan otros lenguajes de back-end con los clientes y qué tan diferente funciona el nodo js.

    En los lenguajes de fondo como php, jsp, etc., cuando el cliente solicita una página de un servidor web, el servidor web asigna un subproceso separado de su grupo de subprocesos para manejar la solicitud y este subproceso solo es responsable de responder de nuevo cliente. Cuando el subproceso está atendiendo la solicitud del cliente, ningún otro subproceso puede interferir, es decir, está bloqueado. Ahora, qué pasa si el número de clientes excede los subprocesos en el grupo de subprocesos, entonces los clientes tienen que esperar hasta que un subproceso acepte su solicitud. Esto es sincrónico , bloqueante y multihilo .

    Ahora es posible que se pregunte cómo Node js es rápido a pesar de no ser multiproceso, porque aquí el único subproceso atenderá todas las solicitudes del cliente, es decir, cuando el cliente realiza una solicitud al servidor, el subproceso recibe la solicitud y solicita a la base de datos dar datos para esa solicitud en particular, ya que lleva tiempo recuperar datos en la base de datos, mientras tanto, el hilo maneja otra solicitud. Una vez que se reciben los datos de la base de datos, el hilo devuelve la respuesta al cliente. De esta manera es más rápido y eficiente. Por lo tanto, es asíncrono, sin bloqueo y de un solo subproceso .

    Este artículo hace un buen trabajo al responder su pregunta Node.js

    http://www.theguardian.com/techn

    Extracto

    Node.js es un motor de ejecución de JavaScript del lado del servidor. El lenguaje real no es importante; ciertamente, si tuviera una máquina del tiempo y el efectivo de Tony Stark, volvería y lo cambiaría para que no se basara en JavaScript. Lo importante es cómo funciona.
    Windows y los sistemas operativos * nix se basan en arquitecturas de sistemas operativos desarrolladas para mainframes en los años 60. Pase algún tiempo con algunos de esos sistemas antiguos y encontrará el aislamiento y el enhebrado de los procesos con la misma forma de la vieja escuela. Específicamente, los servidores web se basan en un modelo de ejecución cliente / servidor que está vinculado con los modelos de subprocesos del sistema operativo y tienen límites inherentes en términos de escala.
    En el inicio, el proceso de un servidor web tiene (nocionalmente) un hilo. Este subproceso establece un socket TCP / IP en un subproceso conocido y espera una conexión entrante. Al recibirlo, el hilo primario encuentra o crea un hilo trabajador y entrega la conexión a ese trabajador. Una vez entregado, el hilo primario vuelve a la espera (más correctamente, un estado “bloqueado”) y espera otra conexión. Debido a que la rotación de un subproceso es costosa, el servidor generalmente mantiene un grupo de subprocesos que se pueden usar como trabajadores. Cuando finaliza el trabajo del trabajador, el subproceso vuelve a ese grupo donde se puede volver a utilizar.
    Un proceso solo puede mantener un número relativamente pequeño de subprocesos. Gire demasiados hilos y el sistema operativo pasará más tiempo cambiando hilos de lo que realmente funciona. Por lo tanto, existe un límite natural para la cantidad de solicitudes simultáneas que un servidor puede manejar. El pensamiento de la vieja escuela dicta que para obtener más solicitudes en un período de tiempo determinado, debe ejecutar el trabajo más rápido. Si tiene diez subprocesos de trabajo que toman un segundo cada uno para manejar una solicitud, puede hacer diez solicitudes por segundo. Si optimiza de modo que cada solicitud ahora solo demore medio segundo, puede manejar 20 solicitudes por segundo.
    La victoria en Node.js proviene del hecho de que durante una buena parte del tiempo de ejecución total de la solicitud, su hilo está esperando solicitudes de disco. A menos que pueda cargar todos los datos de su aplicación en la memoria local, dependerá en última instancia de arrastrar los datos desde el disco, ya sea desde una base de datos local o desde una remota en la red. (Discutimos esta idea anteriormente). Por simplicidad, digamos en nuestra solicitud de un segundo, se gasta medio segundo esperando que se complete una llamada a la base de datos (y para simplificar, diremos que los datos deben cargarse desde el disco en lugar del caché en memoria del servidor de la base de datos). En lugar de tener nuestro hilo allí bloqueado para que la respuesta regrese, podemos usar ese hilo para atender otra solicitud. Esa es la idea general de Node.js. Rompe la dependencia del “contador del programa” al subproceso al permitir que los contadores del programa “salpiquen” el trabajo que se puede hacer en lugar de tener subprocesos inactivos en un estado de espera.
    (Nota: en lo anterior, he usado un significado más liberal de “contador de programa” como una alegoría a “línea actual de código que se está ejecutando”).

    Aquí hay una respuesta de estilo ELI5: Node.js le permite ejecutar un archivo JavaScript (sin un navegador).

    ¿Qué es JS sin un navegador? Bueno, es como cualquier otro lenguaje de programación. Puede abrir / leer archivos, puede crear un servidor web, puede crear un servidor de correo, un servidor TCP, un juego, etc.

    Node.js también tiene una biblioteca “estándar”. Es decir, al igual que cualquier otro idioma, tiene algunas utilidades preempaquetadas que vienen con el idioma. Estas utilidades ayudan con redes básicas, lectura / escritura de archivos y más. Cada idioma viene con este conjunto de cosas. Node proporciona esas utilidades comunes a JavaScript.

    Node.js también tiene 1 pieza más de tecnología que vale la pena llamar a los efectos de esta discusión, y que es un cargador de paquetes / módulos. Hasta hace poco, JavaScript realmente no tenía un mecanismo para importar / requerir dependencias entre archivos JavaScript. El nodo preempaqueta una forma de cargar archivos JavaScript en su tiempo de ejecución, este sistema de módulo se conoce como “CommonJS”.


    Hay muchas razones por las cuales alguien puede querer usar NodeJS, pero los principales beneficios se centran en las 3 cosas:

    1. Código que funciona tanto en el lado del cliente como en el lado del servidor
    2. Código de subproceso único que es fácil de razonar sobre + un bucle de eventos que hace que el código de “subprocesos múltiples” parezca un subproceso único Hacer una solicitud HTTP en el lado del servidor es un ejemplo de código de “subprocesos múltiples” que aparece con un solo subproceso.
    3. Comunidad de desarrollo realmente activa, especialmente para desarrolladores frontend

    Node.js es JavaScript compilado que se ejecuta en un servidor. Node.js es especialmente adecuado para atender solicitudes de clientes realizadas a través de una API, por lo que funciona especialmente bien con aplicaciones de una sola página (SPA) que se ejecutan en un cliente, como una computadora portátil, un teléfono móvil o un refrigerador. (Sí, dije “refrigerador” porque Node.js también funciona muy bien con aplicaciones integradas, el llamado Internet de las cosas, o IoT). Node.js se adapta perfectamente al creciente número de arquitecturas de microservicios en la web, por lo que un El cliente puede acceder a múltiples servicios que se ejecutan simultáneamente en muchos servidores diferentes.

    Entonces, ¿por qué querrías compilar JavaScript? JavaScript comenzó su vida en los años 90 cuando Brendan Eich en Netscape ideó un lenguaje de secuencias de comandos que podría usarse a partir de un archivo HTML que se ejecuta en el navegador Netscape para agregar capacidades dinámicas a una página web (o para ejecutar un applet de Java, de ahí el nombre). JavaScript admite una práctica función llamada función de devolución de llamada, que es una función que se pasa como argumento a otra función. La última función no puede ejecutarse hasta que todas las funciones de devolución de llamada que se le hayan enviado ya se hayan ejecutado. Con las funciones de devolución de llamada, las operaciones como el acceso al disco del servidor se realizan de forma asíncrona antes de que se ejecute la función principal, lo que permite que Node.js maneje un gran número de llamadas API al mismo tiempo con una cola de solicitudes. Node.js nunca espera (bloques) hasta que obtiene lo que se necesita para atender una solicitud. Simplemente pasa a la siguiente solicitud y “vuelve” cuando la solicitud original está lista para ser atendida porque los datos, por ejemplo, están de vuelta desde el disco.

    Ryan Dahl, un joven Ph.D. candidato en matemáticas, escribió el compilador original Node.js principalmente para obtener la capacidad de devolución de llamada en un lenguaje compilado. Si bien las devoluciones de llamada suenan bastante mansas, en realidad son enormes. Puede tener miles de solicitudes de miles de navegadores (u otros dispositivos cliente), todas manejadas al mismo tiempo por un solo programa de ejecución que nunca espera (o bloquea). Agregue a esto el hecho de que todas las capacidades del servidor web se compilan en el mismo ejecutable, entonces también puede eliminar cualquier demora que normalmente agrega un servidor web como IIS o Apache.

    Pero, usted pregunta, ¿Node.js se vuelve cada vez más lento a medida que se acumula la cola de solicitudes? Claro que nunca se bloquea, pero si cientos de solicitudes siguen acumulándose, esta arquitectura de un solo subproceso (un bucle de evento principal) se atasca, lo que resulta en el mismo tipo de lentitud que obtienes con el enfoque sincrónico compatible con la mayoría de los lenguajes compilados y multiproceso. C ++ y Java. De hecho, este problema parece ser el talón de Aquiles en toda la configuración, lo que de hecho ha llevado a muchos programadores a lenguajes más nuevos, como Google’s Go, que pueden brindarle capacidades y rendimiento similares en un entorno con características posiblemente mejores que JavaScript. hoy.

    Ingrese a la programación sin estado. Si escribe un programa Node.js de tal manera que cada solicitud se puede hacer sin estado (es decir, la memoria volátil nunca está en un estado que se puede perder si el servidor falla, lo que resulta en pérdida de datos o corrupción), entonces puede tener cualquier número de ejecutables de Node.js en ejecución, que manejan solicitudes incluso del mismo cliente al mismo tiempo. Puede ser un poco complicado programar entornos de ejecución sin sesión y sin estado, pero si puede hacerlo, puede diseñar configuraciones de servidor capaces de manejar prácticamente cualquier carga. Vea el siguiente video corto de YouTube (30 segundos) para una gran explicación.

    Por supuesto, una vez que vaya a varios servidores que manejan las mismas secuencias de solicitud, es probable que necesite replicar la base de datos, pero todas las bases de datos modernas lo admiten. Node.js funciona especialmente bien con bases de datos NoSQL como MongoDB. Con MongoDB no solo obtiene el rendimiento de una base de datos donde no se utilizan comandos SQL largos y complicados, sino que el controlador MongoDB trabaja directamente con las estructuras de datos en su programa Node.js. Su programa Node.js obtiene, por ejemplo, una matriz directamente del controlador MongoDB Node.js con todos sus datos solicitados, a los que puede acceder directamente con los índices de la matriz.

    Otra característica importante de Node.js es el hecho de que el mismo código se puede ejecutar en cualquier lugar, con cambios mínimos. Esta capacidad de JavaScript isomórfica o universal de Node.js actualmente permanece en gran parte sin ser adoptada, pero eso está cambiando. Puede, por ejemplo, usar la misma implementación de objeto en el código del servidor y del cliente sin la necesidad de modificarla o reescribirla para cada plataforma. El código se ejecuta de forma nativa independientemente de si está compilado o interpretado. Esto contrasta con Java, que requiere que la capa del compilador VM JIT ejecute el mismo código en todas las plataformas. Con Node.js y JavaScript, obtienes la verdadera capacidad de “escribir una vez que se ejecuta en todas partes” sin pagar ninguna penalización por traducción.

    Finalmente, cualquier descripción de Node.js debe incluir una mención de npm (Node Package Manager) y github. La mayor parte de la actividad de Node.js se produce en el dominio público. Puede acceder literalmente a cientos de miles de módulos Node.js desde npm, lo que le libera de la necesidad de escribir código JavaScript desde cero para cumplir con muchos, si no todos, los requisitos de la aplicación. ¿Por qué reinventar la rueda? Solo junta tu aplicación. Agregue a esto el hecho de que el trabajo continuo en estos módulos ocurre principalmente en proyectos abiertos, github, y realmente tiene que admitir que Node.js está avanzando de formas nunca antes vistas en nuestras comunidades informáticas globales. Es rápido, portátil, escalable, abierto y ubicuo, y se está adoptando a un ritmo incomparable.

    NodeJs es una solución del lado del servidor para JavaScript, particularmente para el manejo de solicitudes y respuestas HTTP (RestFul Services). Cuando podemos tener JavaScript en el lado del cliente, ¿por qué no podemos tener el mismo en el lado del servidor? Sí, también podemos tener JavaScript en el lado del servidor simplemente usando NodeJs. Utiliza el motor JavaScript V8 para interpretar y ejecutar el código. Funciona en el concepto de mecanismo controlado por eventos, no crea múltiples subprocesos para cada solicitud, sino que utiliza la devolución de llamada para manejar múltiples solicitudes en un solo subproceso. Esto es lo que hace diferente de otras tecnologías de servidor web.

    Para más detalles con ejemplos, consulte:

    Una introducción rápida a cómo funciona Node.js – Rendimiento de DZone

    Para Hosting y otra información básica:

    Instalación y ejecución de aplicaciones node.js dentro de IIS en Windows: ¿estás loco?

    Hola,

    Node.js es una plataforma de software basada en el motor JavaScript V8 de Google. Utiliza un modelo de E / S sin bloqueo controlado por eventos y un bucle de eventos de subproceso único que permite un alto rendimiento y escalabilidad de la aplicación. La capacidad de codificar en el mismo lenguaje de programación en el front-end y el backend de la aplicación se debe a la utilización de Node.js del lenguaje JavaScript central. Las aplicaciones desarrolladas por Node.js a menudo se combinan con MongoDB y Express.js, que también utilizan JavaScript. Express.js ayuda a administrar el middleware de una aplicación Node mientras que MongoDB es una base de datos No-SQL basada en documentos.

    La forma en que los clientes interactúan con el software ha cambiado en los últimos años. Este nuevo enfoque requiere el uso de aplicaciones de back-end que son muy rápidas, escalables y fáciles de implementar y mantener. Todas las grandes empresas han comenzado a migrar sus aplicaciones a Node.js y otras están creando aplicaciones desde cero utilizando la tecnología de pila MEAN. PayPal, Dow Jones y Uber ya han puesto en marcha soluciones empresariales Node.js. Como se mencionó, Yahoo, HP y muchos otros han planeado sus productos de próxima generación en esta plataforma de pila MEAN. Espero que esto ayude. Visite el sitio web y el blog de CronJ para comprender más sobre AngularJS, Node.js y las tecnologías completas de JavaScript. Gracias.

    Node.js es una plataforma multiplataforma de código abierto para desarrollar aplicaciones de red y del lado del servidor. Proporciona un entorno de tiempo de ejecución y utiliza un modelo de E / S sin bloqueo controlado por eventos que lo hace liviano y eficiente, perfecto para aplicaciones en tiempo real con uso intensivo de datos que se ejecutan en dispositivos distribuidos. Además, las aplicaciones están escritas en JavaScript y pueden ejecutarse dentro del tiempo de ejecución de Node.js en OS X, Microsoft Windows, Linux, además de su ecosistema de paquetes, npm es el ecosistema de bibliotecas de código abierto más grande del mundo.

    Aquí hay algunos conceptos que un desarrollador de nodejs debe conocer

    Tutorial de Node.js con configuración e instalación básicas – Array151

    NPM: Administrador de paquetes de nodo, instalación de paquetes locales y globales

    package.json: diferencia entre tilde (~) y caret (^) – Array151

    Nodemon: Code Watcher y Auto-Reload, nodemon, node.js, npm

    forever node.js (nunca lo decepcione, mantenga vivo el servidor)

    NodeJS: ¿Almacenamiento local de continuación o almacenamiento local de subprocesos? – Array151

    y todos estos conceptos que se piden en entrevistas

    preguntas de la entrevista de nodejs

    Buscar todos los temas uno por uno y dejar en claro conceptos básicos y creo que esa es la mejor manera de aprender.

    Nodo js es una plataforma basada en el tiempo de ejecución de JavaScript de Chrome para crear fácilmente aplicaciones de red rápidas y escalables. Node.js utiliza un modelo de E / S sin bloqueo controlado por eventos que lo hace ligero y eficiente

    Node.js es un entorno de tiempo de ejecución JavaScript ágil, multiplataforma, útil tanto para servidores como para aplicaciones de escritorio

    ¿Por qué Node js?

    ans:
    Una tarea común para un servidor web puede ser abrir un archivo en el servidor y devolver el contenido al cliente.

    Así es como PHP o ASP maneja una solicitud de archivo:

    1. Envía la tarea al sistema de archivos de la computadora.
    2. Espera mientras se abre el sistema de archivos y lee el archivo.
    3. Devuelve el contenido al cliente.
    4. Listo para manejar la próxima solicitud.

    Así es como Node.js maneja una solicitud de archivo:

    1. Envía la tarea al sistema de archivos de la computadora.
    2. Listo para manejar la próxima solicitud.
    3. Cuando el sistema de archivos se ha abierto y leído el archivo, el servidor devuelve el contenido al cliente.

    Node.js elimina la espera y simplemente continúa con la siguiente solicitud.

    Node.js ejecuta una programación asincrónica de un solo subproceso, sin bloqueo, que es muy eficiente en la memoria.

    Lo que Node js no puede hacer

    No hay DOM integrado en Node, ni ninguna otra capacidad del navegador.

    A partir de ahora, el nodo js se está volviendo popular debido a sus habilidades basadas en eventos y un solo subproceso. El nodo js maneja más solicitudes por segundo que el servidor apache

    Node.js es una plataforma basada en el tiempo de ejecución de JavaScript de Chrome

    La característica más alegre de Node.js es
    evento conducido :

    E / S sin bloqueo :
    Una función asincrónica sin bloqueo vuelve antes de que finalice, y generalmente hace que se realice algún trabajo en segundo plano antes de desencadenar alguna acción futura en la aplicación

    Estas dos cosas lo hacen ligero y eficiente , perfecto para aplicaciones en tiempo real con uso intensivo de datos , sistemas de administración de contenido, etc.

    Te hablaré sobre Node.JS solo por un ejemplo.

    En una empresa anterior que fundé, eso permitía a los profesionales de todo tipo tener su propia aplicación móvil. Teníamos un sitio web y una aplicación móvil construida con MVC Asp.Net. La aplicación era híbrida en Cordova. En el momento en que se cargó, redirigió el WebView a un sitio web externo creado con JQuery Mobile. Lo hicimos en el pasado porque queríamos actualizar la aplicación sin enviarla a revisión. El sitio web principal creado para fines de administración también se escribió en MVC Asp.Net. Ahora, todo el código que se ejecutaba en el lado del cliente era JavaScript dentro de un tipo de diseño Html SPA. Para el backend, usamos C # .Net. Todo fue atendido por IIS. Entonces, es posible que hayas adivinado que teníamos que tener dos habilidades diferentes: para el cliente / frontend -> JavaScript, para el servidor / backend -> C # .Net

    Para mi inicio actual, Yuppr, que es una aplicación móvil para almacenar todas sus recomendaciones en un solo lugar para que sus amigos las descubran, tomamos un enfoque diferente. Usamos Node.JS para ejecutar nuestro backend que no es más que una Api tranquila.

    Node.JS le permite ejecutar código JavaScript en el lado del servidor. Junto con otras bibliotecas, como Express.JS, puede atender solicitudes de un sitio web o una aplicación como lo haría IIS.

    Básicamente, todas las habilidades que tiene en el lado del cliente, puede portarlas fácilmente al lado del servidor. Incluso puede reutilizar la mayoría de las bibliotecas que se ejecutan en el cliente en el lado del servidor en Node.

    Aquí hay un ejemplo: imagina que quieres hacer que el nombre completo del nombre y apellido se almacene en la base de datos:

    var getName = function (first, last) {return first + ” + last; }

    La misma función puede ejecutarse en Node para reconstruir el nombre del nombre y apellido.

    Node.JS es realmente bueno con la creación de una API para su sitio web o aplicación móvil.

    Espero que esto ayude.

    Node.js es una plataforma multiplataforma de código abierto y libre de Javascript para la programación del lado del servidor que permite a los usuarios crear aplicaciones de red rápidamente. Node.js. es un sistema que utiliza programación controlada por eventos para crear aplicaciones escalables y programas de red. El nodo Js es una plataforma de subproceso único que utiliza llamadas de E / S sin bloqueo y es especialmente útil para construir servidores web.

    Node.js permite al desarrollador ejecutar JavaScript en el back-end, lejos del navegador. Node.js interpreta y ejecuta JavaScript en el back-end utilizando V8 VM de Google. Node.js es un motor de servidor altamente personalizable y simplificado. Este proto-servidor procesa en un bucle, listo para aceptar y responder a las solicitudes. Cualquiera de esas solicitudes puede iniciar otras solicitudes en alguna otra parte del sistema, como leer un archivo del disco o enviar una señal para hacer girar un motor en un brazo robótico. Ese ciclo, conocido como el ciclo de eventos, es la parte del “tiempo de ejecución”.

    Para más detalles, puede echar un vistazo.

    https://nodejs.org/en/

    Tutorial de Node.js

    https://www.airpair.com/javascri

    ¡Tenemos un artículo útil para principiantes sobre Node.js en el Informe del curso, por un instructor de bootcamp de codificación de DigitalCrafts! He incluido un resumen del artículo a continuación:

    ¿Qué es el nodo? JS?

    • Permite a los desarrolladores ejecutar JavaScript fuera de un navegador web
    • Necesita saber JavaScript para usar Node
    • El nodo en sí no es en realidad JavaScript, está en C, pero lee JavaScript (por lo que no necesita aprender C)

    ¿Cuáles son las ventajas de aprender Nodo?

    • Si ya conoce JavaScript, no necesita aprender un nuevo idioma para escribir el código final.
    • Es increíblemente rápido para manejar el tráfico.

    ¿Para qué se utiliza Node?

    Aquí hay un ejemplo:

    • Walmart cambió su sitio web a Node específicamente para todas las solicitudes que ocurren el Black Friday.
    • También es ideal para API y aplicaciones en tiempo real (como mensajería instantánea o juegos).

    ¿Cuáles son las alternativas al nodo?

    • PHP
    • ÁSPID
    • Pitón

    ¿Cuáles son las desventajas de Node?

    • Como tecnología joven, no hay tantos recursos disponibles
    • Tendrá que aprender sobre las promesas y otros conceptos para poder usarlo.
    • No es ideal para aplicaciones con mucha CPU

    Para obtener más detalles, explicaciones y ejemplos, consulte el artículo completo: Node.js: ¡Una introducción para principiantes!

    Consulte también la sección de recursos del Informe del curso para leer más artículos sobre lenguajes de codificación y tecnología, ¡todo escrito especialmente para principiantes!

    Uso de node.js:

    Node.js es un marco basado en JavaScript muy potente y se utiliza para construir una aplicación web intensiva de E / S. Node.js es un lenguaje de script de código abierto y también es un lenguaje gratuito igual que Java. Es utilizado por miles de desarrolladores. Su aplicación está escrita en JavaScript. Se ejecuta en varias plataformas, por ejemplo: Linux, Microsoft y UNIX)

    Por qué node.js es mejor que PHP o ASP:

    Cómo PHP y ASP manejan una solicitud de archivo:

    1. Envía la tarea al sistema de archivos de la computadora.

    2. Espera mientras el sistema de archivos se abre y lee el archivo.

    3. Vuelva a enviar el contenido al cliente.

    4. Listo para nueva solicitud

    Cómo node.js maneja una solicitud de archivo:

    1. Envía tareas al sistema informático

    2. Listo para una nueva tarea

    3. Cuando el sistema de archivos abre y lee el archivo, el servidor reenvía el contenido al cliente.

    Node.js funciona:

    1. Crear contenido de página dinámico

    2. Agregue, modifique y elimine sus datos en una base de datos.

    3. Cree, abra y elimine archivos en el servidor.

    Node.js funciona como un servidor de archivos:

    Este servidor puede trabajar con el sistema de archivos en su computadora personal.

    Uso del módulo node.js:

    • Leer archivos

    • Actualizar archivos

    • Crear archivos

    • Renombrar archivos

    • Borrar archivos

    La ventaja de node.js:

    • Fácil de codificar

    • Presente en todas partes

    • Resolver todas las consultas de la base de datos.

    • Aplicación web en tiempo real

    • Rápida velocidad

    Una aplicación node.js consta de los siguientes componentes:

    • Use los módulos requeridos

    • Crear servidor

    • Solicitud de lectura

    • Reenviar respuesta

    Módulo de utilidad Node.js:

    El módulo se utiliza para crear cualquier aplicación basada en nodos. Estos módulos son muy comunes y se usan con mucha facilidad.

    1. módulo del sistema operativo

    2. Módulo de ruta

    3. Módulo neto

    4. módulo DNS

    5. Módulo de dominio

    NODE.JS: terminal REPL

    REPL significa leer, evaluar, imprimir y recorrer. NODE.JS funciona con el entorno REPL.

    REPL REALIZA la siguiente tarea:

    Leer:

    Lee la banda de entrada del usuario almacenada en la memoria.

    EVAL:

    Evaluar estructura de datos

    Huellas dactilares:

    Imprime el resultado.

    Lazo:

    Continúe con el comando anterior hasta que el usuario detenga el paso y procese por comando

    También se usa para depurar el código JavaScript.

    Node.js expresa framework:

    Este marco proporciona un conjunto de características para crear aplicaciones web y móviles.

    • Crear configuración y middleware

    • Realizar acciones

    • Pasar argumentos

    El administrador de Node.js proporciona dos funcionalidades principales:

    • repositorios en línea

    • Utilidad de línea de comando

    Estaba tan frustrado por las respuestas técnicas que escribí una publicación de blog para explicar en términos simples de qué se trata exactamente todo el bombo.

    Básicamente, piense en Server Language como un Cook in the Kitchen mientras que Javascript es el Waiter. Anteriormente, el camarero nunca entra en la cocina (servidor). Solo puede tomar la comida (datos) y agregar guarnición (visual).

    Node.Js ahora permite que el camarero vaya a la cocina y toque todas las herramientas que hay allí, como la estufa (base de datos).

    Esta es la publicación completa con algunas fotos dentro. No hay código en absoluto!

    Guía de idiotas sin papel a Node.JS

    Node es uno de los framework JavaScript más populares que facilita de manera decisiva el trabajo de cualquier persona que cree aplicaciones web. Es, con mucho, el lenguaje en uso de más rápido crecimiento, y se ubica entre las 10 habilidades de desarrollador más buscadas. El uso de Node.js es principalmente para stack completo, front-end y back-end.

    Node JS es un entorno de tiempo de ejecución de JavaScript , es decir, la infraestructura para construir y ejecutar aplicaciones de software en JavaScript.

    Un breve resumen sería como sigue:

    • Node JS es un marco de servidor y es gratuito
    • se ejecuta en Windows, Linux, Mac OS, etc.
    • El nodo utiliza JavaScript en el servidor

    Cómo funciona Node JS:

    • una tarea va al sistema de archivos
    • el sistema está listo para las siguientes solicitudes
    • cuando se abre y lee un archivo, el sistema envía el contenido al cliente

    En otras palabras, con Node no tiene que esperar y puede continuar con las siguientes tareas. Esta es una de las razones por las que es tan eficiente. Ahora, qué es un archivo Node JS :

    • contiene tareas y las ejecuta en eventos establecidos
    • un evento es cuando alguien intenta acceder al servidor
    • se debe iniciar un archivo en el servidor
    • los archivos tienen la extensión ‘.js’

    Y por último, pero no menos importante, lo que puede hacer con Node.js :

    • generar contenido dinámico
    • crear, abrir y leer o eliminar archivos en el servidor
    • recopilar y modificar datos en la base de datos

    10 razones principales para usar Node.js

    • Bueno para desarrolladores principiantes, JavaScript es fácil de aprender, marco rico (Angular, Node, Backbone, Ember)
    • Es rápido, debido a las tecnologías innovadoras de Google y al ciclo de eventos.
    • Capacidad para mantener los datos en formato JSON (notación de objeto) nativo en su base de datos
    • Múltiples módulos (NPM, Grunt, etc.) y comunidad de apoyo.
    • Es bueno para crear aplicaciones en tiempo real, como chats y juegos.
    • Base de código libre individual
    • Bueno para la transmisión de datos, por lo tanto, para archivos de audio y video, como ejemplo
    • Patrocinado por Linux Foundation, así como PayPal, Joylent, Microsoft, Walmart
    • Amplia gama de opciones de alojamiento.
    • JS es el lenguaje más antiguo, el 99% de los desarrolladores lo conocen

    Quién trabaja con él: casos de nodo

    Mostrando un ritmo increíble (cerca del 100% de crecimiento en uso cada año), Node JS se ha convertido en una plataforma universal para aplicaciones web. Empresas como PayPal, Walmart, Ebay, Netflix, Microsoft, Uber, Fusion Marketing usan Node. También es usuario en empresas y producción.

    En general, aquí hay algunos buenos ejemplos de para qué podría usarse Node.js.

    • Streaming de datos
      Por ejemplo, carga de archivos en tiempo real, codificación de archivos durante la carga, creación de proxies entre capas de datos.
    • Aplicaciones de una sola página
      Aplicaciones web modernas, con mucho procesamiento en el lado del cliente. Los tiempos de respuesta positivos y el intercambio de datos entre el servidor y el cliente son una buena opción para tales aplicaciones.
    • aplicaciones web
      Aplicaciones web clásicas en el lado del servidor, que utilizan Node JS para transportar HTML. Uno de los principales beneficios a este respecto es el contenido más amigable con SEO.
    • Chats / ACR
      Aplicaciones ligeras en tiempo real, como interfaces de aplicaciones de mensajería, Twitter, software de chat. Un chat clásico sería un gran ejemplo del uso de Node. Simple, intensivo en datos y en múltiples dispositivos.
    • APIs
      Interfaces de programación REST / JSON y exponer bases de datos o servicios web a través de él. No se preocupe por la conversión entre sistemas.
    • Apoderado
      Para implementar Node como proxy para manejar conexiones de forma no bloqueante. Excelente para aplicaciones que trabajan con servicios externos, exportan e importan muchos datos.
    • Tableros
      Tableros de control de aplicaciones o sistemas web, que permiten el seguimiento de las acciones de los usuarios. Node también puede visualizar tales interacciones para usted en tiempo real.

    Esta es solo una breve información sobre Node.js. Siga el artículo a continuación y lea más sobre el uso de Node.js: Use Node.js para backend: cuándo, por qué y las principales razones para usar Node.

    En mi empresa anterior, hemos creado un gran producto. Tenemos muchos clientes, y también nuestro cliente ama nuestros productos. Les ayudamos a organizar sus comentarios de los clientes y les brindamos asistencia las 24 horas. Construimos un CRM SaaS, con suscripción de precio barato. También tenemos un nivel gratuito, que solo acepta puede tener 1 usuario. A muchos fundadores de startups les encanta usarlo.

    Hace unos años, antes de unirme a esta empresa, solo sé que NodeJs es un entorno de tiempo de ejecución que se ejecuta en el back-end, que usa JavaScript como su principal lenguaje de programación.

    En esta empresa, utilizamos NodeJS. Tenemos muchos microservicios que se construyeron usando NodeJS.

    Un día, tengo una gran tarea para mí que no tiene experiencia usando NodeJS. Ese fue mi primer código que se implementará en producción. Escribí un trabajo cron que migrará una gran cantidad de datos a servicios de terceros, si se dibuja en un diagrama, es solo una tarea simple. Bueno, puedo entenderlo claramente.

    Con la falta de habilidades de NodeJS, lo termino en 3 semanas. Probado en etapas y funcionando bien para datos ficticios.

    Más tarde…

    Unas pocas horas después de su lanzamiento a producción, nuestro sistema estaba inactivo. Todo está devolviendo el error interno del servidor. Estamos en el caos y discutimos entre nosotros. Nuestro cliente se está volviendo loco.

    Más tarde, nuestro CTO verificó el último commit, esa fue mi tarea. Olvidé cerrar la devolución de llamada, o al menos le envié una devolución de llamada nula.

    devolución de llamada (nulo)

    Eso fue una pesadilla para mí. Nuestro servicio no funciona por más de 3 horas. Me asusté

    Desde ese momento, sé lo que realmente es NodeJs.