Tutorial de Node.js: una guía completa para principiantes



Este tutorial de Node.js hablará sobre la arquitectura básica, el funcionamiento y varios módulos de Node.js. También demostrará una implementación práctica de Node.js y Express.js.

Si alguna vez ha oído hablar de Node.js, es posible que sepa que es uno de los marcos de JavaScript más destacados y potentes. Desde su lanzamiento, ha seguido manteniendo su dominio absoluto en el mercado de TI. Incluso con la introducción de nuevos y vibrantes me gusta , , Meteor, etc., la popularidad de Node.js parece no cesar nunca. ¿Preguntándome por qué? Bueno, con la ayuda de este tutorial de Node.js, te daré una idea completa de él. Entonces, prepárate para enamorarte de Node.js.

En este tutorial de Node.js, discutiré los siguientes temas:





¿Qué es Node.js?

Node.js es un potente marco desarrollado en Motor JavaScript V8 de Chrome que compila JavaScript directamente en el código de máquina nativo. Es un marco ligero que se utiliza para crear aplicaciones web del lado del servidor y extiende la API de JavaScript para ofrecer las funciones habituales del lado del servidor. Generalmente se usa para el desarrollo de aplicaciones a gran escala, especialmente para sitios de transmisión de video, aplicaciones de una sola página y otras aplicaciones web. Node.js hace el uso de un modelo de E / S sin bloqueo impulsado por eventos que lo convierte en una opción adecuada para las aplicaciones en tiempo real con uso intensivo de datos.

Como cualquier otro lenguaje de programación, node.js hace uso de paquetes y módulos. Estas son las bibliotecas que contienen varias funciones y se importan desde npm (administrador de paquetes de nodos) a nuestro código y se utilizan en los programas. Algunas de las características principales que definen a Node.js se enumeran a continuación:



Características de Node.js

  1. Fuente abierta
    Node.js es una licencia MIT de marco de código abierto que es compatible con una gran comunidad. Su comunidad es bastante activa y ha contribuido a agregar nuevas capacidades a las aplicaciones Node.js.
  2. Simple y rapido
    Dado que Node.js se basa en el motor de JavaScript V8 de Google Chrome, sus bibliotecas son capaces de ejecutar código rápidamente.
  3. Asincrónico
    Todas las bibliotecas de Node.js son asíncronas, lo que significa que los servidores basados ​​en Node.js nunca esperan a que una API envíe la respuesta y pase a la siguiente API.
  4. Alta escalabilidad
    Debido al mecanismo de eventos, Node.js es altamente escalable y ayuda al servidor en una respuesta sin bloqueo.
  5. De un solo hilo
    Con la ayuda del bucle de eventos, Node.js puede seguir el modelo de un solo subproceso. Esto permite que un solo programa maneje múltiples solicitudes.
  6. Sin búfer
    Una de las principales funcionalidades de las aplicaciones Node.js es que nunca almacena en búfer ningún dato.
  7. Multiplataforma
    Node.js se puede construir e implementar fácilmente en varias plataformas como Windows, MAC y Linux.

Avancemos ahora más y veamos cómo implementar el código real en el navegador. Pero antes de eso, necesita descargar e instalar en sus sistemas. Puedes consultar mi otro artículo para conocer el completo Proceso de instalación de Node.js .

Ahora, avancemos más en este tutorial de Node.js, donde hablaré sobre el componente más importante de Node.js, es decir, npm.

NPM (Administrador de paquetes de nodo)

NPM significa Node Package Manager que, como su nombre indica, es un administrador de paquetes para paquetes / módulos de Node.js. Desde la versión 0.6.0 de Node. en adelante, npm se ha agregado por defecto en la instalación del nodo. Le ahorra la molestia de instalar npm explícitamente.



NPM básicamente ayuda de dos maneras:

diff entre la clase abstracta y la interfaz
  1. Proporciona y aloja repositorios en línea para paquetes / módulos de node.js que se pueden descargar y usar fácilmente en nuestros proyectos. Usted puede encontrarlos aquí: npmjs.com
  2. Proporciona la utilidad de línea de comandos para instalar varios paquetes de Node.js, administrar las versiones de Node.js y las dependencias de los paquetes.

Pero ahora, debe preguntarse qué son exactamente estos módulos y cómo nos ayudan a construir las aplicaciones Node.js. Bueno, en la siguiente sección de este tutorial de Node.js, te daré una visión completa de los módulos de Node.js.

Módulos de Node.js

Los módulos en Node.js representan varias funcionalidades que se agrupan en archivos JS únicos o múltiples. Estos módulos tienen un contexto único, por lo que nunca interfieren ni contaminan el alcance de otros módulos.

Estos módulos permiten la reutilización del código y mejoran la facilidad de uso. Node.js básicamente proporciona tres tipos de módulos:

  1. Módulos centrales
  2. Módulos locales
  3. Módulos de terceros

Módulo principal

Dado que Node.js es muy ligero framework, los módulos centrales agrupan las funcionalidades mínimas absolutas. Estos módulos generalmente se cargan cuando el proceso Node comienza su ejecución. Todo lo que necesita hacer es importar estos módulos centrales para usarlos en su código.

A continuación, he enumerado algunos de los módulos principales importantes.

Módulo principal Descripción
http Contiene clases, métodos y eventos necesarios para crear el servidor HTTP Node.js
url Contiene métodos para la resolución y el análisis de URL en Node
querystring Contiene métodos para tratar con una cadena de consulta de Node
camino Contiene métodos para lidiar con rutas de archivo
fs Contiene clases, métodos y eventos para trabajar con E / S de archivos
util Contiene funciones de utilidad que pueden ser útiles para los programadores.

Puede cargar su módulo principal, usando el siguiente código:

var module = require ('nombre_módulo')

Veamos ahora qué son los 'módulos locales'.

Módulos locales

Los módulos locales de Node.js son módulos personalizados que el usuario / desarrollador crea localmente en la aplicación. Estos módulos pueden incluir varias funcionalidades agrupadas en distintos archivos y carpetas que se pueden distribuir fácilmente en la comunidad Node.js utilizando NPM.

Estos módulos se cargan de forma similar a los módulos principales. Te mostraremos cómo hacerlo usando un ejemplo básico.

Cree su archivo module.js personalizado / local

var detalle = {nombre: función (nombre) {consola.log ('Nombre:' + nombre)}, dominio: función (dominio) {consola.log ('Dominio:' + dominio)}} módulo.exportaciones = detalle

Incluya su archivo de módulo en su archivo de aplicación principal.

var myLogModule = require ('./ Local_module.js') myLogModule.name ('Edureka') myLogModule.domain ('Educación')

Ahora puede ejecutar estos archivos usando el siguiente comando:

nodo application.js

Permítanme ahora mostrarles qué son los módulos externos.

Módulos externos

Puede utilizar el externo o 3rdmódulos de fiesta solo descargándolos a través de NPM. Estos módulos generalmente son desarrollados por otros desarrolladores y son de uso gratuito. Pocos de los mejores módulos externos son express, react, gulp, mongoose, mocha, etc.

Carga global de módulos de terceros:

npm install --g

Incluya su archivo de módulo en su archivo de aplicación principal:

npm install --save

Archivo JSON

los archivo package.json en Node.js es el corazón de toda la aplicación. Básicamente es el archivo de manifiesto que contiene los metadatos del proyecto. Por lo tanto, comprender y trabajar con este archivo se vuelve muy importante para el desarrollo exitoso del proyecto Node.

El archivo package.json generalmente consta de los metadatos de la aplicación, que se clasifican en dos categorías a continuación:

  1. Identificación de las propiedades de los metadatos: Consiste en propiedades como el nombre del proyecto, la versión actual del módulo, la licencia, el autor del proyecto, la descripción del proyecto, etc.
  1. Escribiendo directamente al archivo: Puede escribir directamente la información necesaria en el archivo package.json e incluirla en su proyecto.

A estas alturas ya se ha familiarizado con los diversos componentes de la aplicación Node JS. En la siguiente sección de este tutorial de Node.js, compartiré algunos conceptos básicos de Node Js para que podamos comenzar con las prácticas.

Conceptos básicos de Node.js

Dado que Node.js es un marco de JavaScript, utiliza la sintaxis de JavaScript. Si desea aprender JavaScript en detalle, puede consultar este . Por ahora, los repasaré con algunos conceptos básicos de Node.js como:

Tipos de datos

Como cualquier otro lenguaje de programación, Node.js tiene varios tipos de datos, que se clasifican además en tipos de datos primitivos y no primitivos.

Los tipos de datos primitivos son:

  1. Cuerda
  2. Número
  3. Booleano
  4. Nulo
  5. Indefinido

Los tipos de datos no primitivos son:

  1. Objeto
  2. Fecha
  3. Formación

Variables

Las variables son entidades que tienen valores que pueden variar durante el curso de un programa. Para crear una variable en Node.js, debe utilizar una palabra clave reservada var. No es necesario que asigne un tipo de datos, ya que el compilador lo seleccionará automáticamente.

Sintaxis:

var varName = valor

Operadores

Node.js admite los siguientes operadores:

Tipo de operador Operadores
Aritmética +, -, /, *, %, ++, —
Asignación =, +=, -=, *=, /=, %=
Condicional =?
Comparación ==, ===, !=, !==, >, >=,<, <=,
Lógico &&, ||, !
Bit a bit &, |, ^, ~,<>, >>>

Funciones

Las funciones en Node.js son un bloque de código que tiene un nombre y está escrito para lograr una tarea en particular. Necesita usar la función de palabra clave para crearlo. Una función es generalmente un proceso de dos pasos. Primero es definir la función y el segundo es invocarla. A continuación se muestra la sintaxis para crear e invocar una función:

Ejemplo:

// Definiendo una función function display_Name (firstName, lastName) {alert ('Hola' + firstName + '' + lastName)} // Invocando la función display_Name ('Park', 'Jimin')

Objetos

Un objeto es un tipo de datos no primitivo que puede contener varios valores en términos de propiedades y métodos. Los objetos de Node.js son entidades independientes ya que no existe un concepto de clase. Puede crear un objeto de dos formas:

  1. Usando Object literal
  2. Usando el constructor de objetos

Ejemplo:

// objeto con propiedades y método var empleado = {// propiedades firstName: 'Minho', lastName: 'Choi', edad: 35, salario: 50000, // método getFullName: function () {return this.firstName + '' + this.lastName}}

Sistema de archivos

Para acceder al sistema de archivos físico, Node.js utiliza la fs módulo que básicamente se ocupa de todas las operaciones de E / S de archivos asíncronas y síncronas. Este módulo se importa usando el siguiente comando:

var fs = require ('fs')

Algunos de los usos generales de los módulos del sistema de archivos son:

cómo implementar el método abstracto en java
  • Leer archivos
    1. fs.readFile ()
var http = require ('http') var fs = require ('fs') http.createServer (function (req, res) {fs.readFile ('script.txt', function (err, data) {res.writeHead ( 200, {'Content-Type': 'text / html'}) res.write (data) res.end ()})}). Listen (8080)
  • Crear archivos
    1. appendFile ()
    2. abierto()
    3. writeFile ()
  • Actualizar archivos
    1. fs.appendFile ()
    2. fs.writeFile ()
  • Borrar archivos
    1. fs.unlink ()
  • Cambiar el nombre de los archivos
    1. fs.rename ()

Entonces, con estos comandos, puede realizar prácticamente todas las operaciones requeridas en sus archivos. Avancemos ahora con este tutorial de Node.js y veamos qué son los eventos y cómo se manejan en Node.js.

Eventos

Como ya he mencionado, las aplicaciones de Node.js son de un solo hilo y controladas por eventos. Node.js admite la simultaneidad ya que está impulsado por eventos y, por lo tanto, hace uso de conceptos como eventos y devoluciones de llamada. Las llamadas a la función asíncrona ayudan a Node.js a mantener la simultaneidad en toda la aplicación.

Básicamente, en una aplicación Node.js, hay un bucle principal que espera y escucha eventos, y una vez que se completa cualquier evento, inmediatamente inicia una función de devolución de llamada.

El siguiente diagrama representa cómo se controlan los eventos en Node.js.

Modelo de subproceso - Tutorial de Node.js - Edureka

Una cosa que debe tener en cuenta aquí es que, aunque los eventos se parecen a las funciones de devolución de llamada, la diferencia radica en sus funcionalidades. Cuando una función asincrónica devuelve sus resultados, las devoluciones de llamada se invocan, por otro lado, el manejo de eventos funciona completamente en el patrón del observador. Y en Node.js, los métodos que escuchan los eventos se denominan observadores. En el momento en que se desencadena un evento, su función de escucha comienza a ejecutarse automáticamente. Los módulos de eventos y la clase EventEmitter proporcionan múltiples eventos incorporados que se utilizan para vincular eventos con detectores de eventos. A continuación, he escrito la sintaxis para eso.

Vincular evento a un oyente de eventos

// Importar módulo de eventos var my_Events = require ('events') // Crear un objeto eventEmitter var my_EveEmitter = new my_Events.EventEmitter ()

Vincular el controlador de eventos a un evento

// Evento vinculante y controlador de eventos my_EveEmitter.on ('eventName', eventHandler)

Disparar un evento

// Activar un evento my_EveEmitter.emit ('eventName')

Ahora intentemos implementar las cosas que he discutido en esta sección de eventos de Node.js.El siguiente código muestra una representación simple de la ejecución del evento en Node.js.

var emisor = require ('eventos'). Función EventEmitter iterateProcessor (num) {var emt = new emitter () setTimeout (function () {for (var i = 1 i & lt = num i ++) {emt.emit ('BeforeProcess' , i) console.log ('Processing Iteration:' + i) emt.emit ('AfterProcess', i)}}, 5000) return emt} var it = iterateProcessor (5) it.on ('BeforeProcess', function ( info) {console.log ('Iniciando el proceso para' + info)}) it.on ('AfterProcess', function (info) {console.log ('Finalizando el procesamiento de' + info)

En la siguiente sección de este Tutorial de Node.js, le daré información sobre uno de los módulos más importantes de Node.js llamado Módulo HTTP.

Módulo HTTP

Generalmente, Node.js se usa para desarrollar aplicaciones basadas en servidor. Pero utilizando el módulo, puede crear fácilmente servidores web que puedan responder a las solicitudes de los clientes. Por lo tanto, también se conoce como Módulo web y proporciona módulos como HTTP y solicitud que facilitan a Node.js en el procesamiento de las solicitudes del servidor.

Puede incluir fácilmente este módulo en su aplicación Node.js simplemente escribiendo el siguiente código:

var http = require ('http')

A continuación, he escrito un código que muestra cómo se desarrolla un servidor web en Node.js.

// llamando a la biblioteca http var http = require ('http') var url = require ('url') // creando el servidor var server = http.createServer (function (req, res) {// configurando el encabezado de contenido res.writeHead ( 200, ('Content-Type', 'text / html')) var q = url.parse (req.url, true) .query var txt = q.year + '' + q.month // enviar cadena a respuesta res.end (txt)}) // asignando 8082 como puerto de escucha del servidor server.listen (8082)

En la siguiente sección de este tutorial de Node.js, hablaré sobre Express.js, que se usa mucho para el desarrollo de aplicaciones web del lado del servidor.

Express.js

Express.js es un marco construido sobre Node.js que facilita la gestión del flujo de datos entre el servidor y las rutas en las aplicaciones del lado del servidor. Es un marco ligero y flexible que proporciona una amplia gama de funciones necesarias para la web y el desarrollo de aplicaciones móviles.

Express.js se desarrolla en el módulo de middleware de Node.js llamado conectar . El módulo de conexión también hace uso de http módulo para comunicarse con Node.js. Por lo tanto, si está trabajando con cualquiera de los módulos de middleware basados ​​en conexión, puede integrarse fácilmente con Express.js.

No solo esto, algunas de las principales ventajas de Express.js son:

  • Acelera el desarrollo de aplicaciones web
  • Ayuda a crear aplicaciones móviles y web de tipos híbridos, de una sola página y de varias páginas
  • Express proporciona dos motores de plantillas, a saber, Jade y EJS
  • Express sigue la arquitectura Model-View-Controller (MVC)
  • Se integra con bases de datos como MongoDB, Redis, MySQL
  • Define un middleware de manejo de errores
  • Simplifica la configuración y personalización fácil para la aplicación.

Con todas estas características, Express asume la responsabilidad de la parte de backend en la pila MEAN. Mean Stack es la pila de software JavaScript de código abierto que se utiliza para crear sitios web y aplicaciones web dinámicos. Aquí, MEDIA representa METRO ongoDB, ES xpress.js, A ngularJS y norte ode.js.

Veamos ahora un ejemplo simple para entender cómo Express.js trabaja con Node.js para facilitar nuestro trabajo. Pero antes de comenzar a trabajar con Express.js, debe instalarlo en su sistema.

Para instalar Express.js globalmente, puede usar el siguiente comando:

npm install -g express

O, si desea instalarlo localmente en la carpeta de su proyecto, debe ejecutar el siguiente comando:

npm install express --save

Como hemos terminado con todos los preparativos, pasemos directamente a la implementación práctica. Aquí, mostraré una aplicación de autenticación de usuario simple usando Node.js y Express.js.

Tutorial de Node.js Desarrollo de aplicaciones paso a paso con Express.js

Para esto, necesitaremos los siguientes archivos:

  • package.json
  • script.js
  • puntos de vista
    • index.jade
    • login.jade
    • seguro.jade
    • unauthorized.jade
    • bienvenido.jade
  • lib
    • route.js

Entonces, comencemos con package.json .

{'autor': 'Edureka', 'nombre': 'Express_Demo', 'descripción': 'Expresar con Node.js', 'versión': '0.0.0', 'scripts': {'inicio': 'nodo script.js '},' motores ': {' nodo ':' ~ 0.4.12 '},' dependencias ': {' connect-flash ':' ^ 0.1.1 ',' cookie-parser ':' ^ 1.4 .3 ',' express ':' ^ 3.21.2 ',' jade ':' ^ 0.20.3 ',' req-flash ':' 0.0.3 '},' devDependencies ': {}}

A continuación, debe crear el script.js .

var express = require ('express') var http = require ('http') var port = 8999 var app = express () const flash = require ('connect-flash') var cookieParser = require ('cookie-parser') var server = http.createServer (app) function checkAuth (req, res, next) {console.log ('checkAuth' + req.url) // no sirve / asegura a aquellos que no han iniciado sesión if (req.url = == '/ secure' && (! req.session ||! req.session.authenticated)) {res.render ('unauthorized', {status: 403}) return} next ()} app.use (flash () ) app.use (cookieParser ()) app.use (express.session ({secreto: 'ejemplo'})) app.use (express.bodyParser ()) app.use (checkAuth) app.use (app.router) app.set ('ver motor', 'jade') app.set ('ver opciones', {diseño: falso}) require ('./ lib / routes.js') (app) app.listen (puerto) consola .log ('Nodo escuchando en el puerto% s', puerto)

Ahora, cree una carpeta llamada vista, bajo la cual agregará los archivos jade que serán responsables de varias vistas de página. El primer archivo de vista que necesita crear es index.jade .

!!! 5 html (lang = 'en') head title Ejemplo de autenticación de usuario body h1 center Demostración de autenticación usando Express h3 Navegar a h4 ul li: a (href = '/ secure') Contenido seguro li: a (href = '/ welcome') Página de bienvenida li: a (href = '/ logout') Cerrar sesión

Ahora, crea el login.jade archivo.

!!! 5 html (lang = 'en') título de la cabecera Cuerpo de ejemplo de autenticación Express h1 center Inicie sesión en este centro de ejemplo de autenticación Express p Uso usuario para el nombre de usuario y pasar para la contraseña. formulario (método = 'publicación') p etiqueta (para = 'nombre de usuario') Entrada de dirección de correo electrónico (tipo = 'texto', nombre = 'nombre de usuario', clase = 'formulario-control', id = 'ejemploInputPassword1', marcador de posición = ' Email ', style =' width: 400px ') p center label (for =' password ') Entrada de contraseña (type =' password ', name =' password ', class =' ​​form-control ', id =' exampleInputPassword1 ', placeholder = 'Password', style = 'width: 400px') p center Enviar - cada mensaje en flash h4 (style = 'color: red') # {message}

El siguiente paso es crear el bienvenido.jade .

!!! 5 html (lang = 'en') head title Ejemplo de autenticación de usuario body h1 center ¡Bienvenido al tutorial de Edureka!

A continuación, cree el seguro.jade archivo.

!!! 5 html (lang = 'en') título de la cabecera Autenticación exprés Ejemplo body h1 center Hola, usuario seguro. p Vaya a ul li: a (href = '/ secure') Contenido seguro li: a (href = '/ welcome') Página de bienvenida li: a (href = '/ logout') Cerrar sesión

Ahora, crea el unauthorized.jade archivo.

!!! 5 html (lang = 'en') head title Autenticación de usuario Ejemplo body h1 center No autorizado p No tiene autorización para ver esta página. p Por favor ' continuar

Ahora, necesita crear una carpeta y nombrarla lib . Ahora, crea un route.js archivo que mapeará todas las páginas.

var util = require ('util') module.exports = function (app) {app.get ('/', function (req, res, next) {res.render ('index')}) app.get (' / welcome ', function (req, res, next) {res.render (' welcome ')}) app.get (' / secure ', function (req, res, next) {res.render (' secure ')} ) app.get ('/ login', function (req, res, next) {res.render ('login', {flash: req.flash ()})}) app.post ('/ login', function ( req, res, next) {// le gustaría hacer una búsqueda en la base de datos o algo más escalable aquí si (req.body.username && req.body.username === 'user' && req.body.password && req.body.password === 'pass') {req.session.authenticated = true res.redirect ('/ secure')} else {req.flash ('error', 'El nombre de usuario y la contraseña son incorrectos') res. redirect ('/ login')}}) app.get ('/ logout', function (req, res, next) {eliminar req.session.authenticated res.redirect ('/')})}

Ahora, si desea ejecutar este código por su cuenta, puede descargarlo desde aquí: PDF del tutorial de Node.js .

Con esto, llegamos al final de este Tutorial de Node.js. Espero haber podido explicar los conceptos de Node.js desde cero.

Si encontró este “Tutorial de Node.js 'Relevante, revisar la por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo.

salario de desarrolladores java en india

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de este Tutorial de Node.js y nos comunicaremos con usted.