Skip to content

Latest commit

 

History

History

Node

Node.js Desde Cero

Node.js® es un entorno de ejecución para JavaScript construido con el motor de JavaScript V8 de Chrome. Node.js usa un modelo de operaciones E/S sin bloqueo y orientado a eventos, que lo hace liviano y eficiente. El ecosistema de paquetes de Node.js, npm, es el ecosistema mas grande de librerías de código abierto en el mundo.

Ciclo de vida de un proceso

  1. Pila de Procesos (Requests & Response)
  2. Pila de Subprocesos (Async Requests)
  3. Cola de Callbacks (Async Responses)

Event Loop

Blocking vs Non Blocking I/O

Comensales VS Meseros

Comensales VS Meseros

Asincronía

Establece la capacidad que tienen las operaciones del flujo de un programa para devolver el control de la ejecución al mismo (programa) antes de que hayan terminado sus procesos, mientras siguen operando en segundo plano (procesos u operaciones no bloqueantes).

Esto agiliza el proceso de ejecución y permite aumentar la escalabilidad, pero complica el razonamiento sobre el programa.

Asincronía

Mecanismos asíncronos en JavaScript:

NPM

Node Package Manager

Es el gestor de paquetes de Node.js... y de todo JavaScript.

Paquetes en Node:

Proyectos en Node:

$ > npm init //Con asistente

$ > npm init -y //Sin asistente

Es el archivo de configuración de un proyecto de node.js.

Tipos de instalación

  • Dependencia de proyecto
  • Dependencia de desarrollo
  • Dependencia global

Instalando un paquete:

$ > npm install [package]

$ > npm install [package]@3.4.12 // Versión específica

$ > npm i [package] //shortcut

Como dependencia de proyecto:

$ > npm install [package] //sin flag

$ > npm install [package] --save //con flag

$ > npm install [package] -S //shortcut

Como dependencia de desarrollo:

$ > npm install [package] --save-dev //con flag

$ > npm install [package] -D //shortcut

Como dependencia global:

$ > npm install [package] --global //con flag

$ > npm install [package] -g //shortcut

Instalando múltiples paquetes de forma simultanea:

$ > npm install [package1] [package2] [package3] --flag

Desinstalando paquetes:

$ > npm uninstall [package]

$ > npm uninstall [package]@3.4.12 // Versión específica

$ > npm un [package] //shortcut

$ > npm un [package] --save

$ > npm un [package] --save-dev

$ > npm un [package] --global

Cuando un proyecto tiene registradas sus dependencias en el package.json se pueden instalar simplemente con el comando:

$ > npm install

Paquetes y Módulos

Podemos importar y exportar módulos en Node de 2 formas:

  1. CommonJS ( estándar y nativa )
  2. Módulos +ES6 ( se requiere usar Babel )

CommonJS:

//exportar
module.exports = myModule

//importar
const myModule = require('./myModule')

Módulos +ES6:

//exportar
export const myModule

//importar
import myModule from './myModule'

Scripts NPM

Podemos ejecutar comandos desde la cli mediante la definición de scripts en el archivo package.json.

"scripts": {
  "sass": "node-sass -o ./dist/ ./src/",
  "dev-server": "browser-sync start --server --files public",
  "start": "nodemon app.js"
 }

$ > npm run sass
$ > npm run dev-server
$ > npm start

npm start no necesita especificar la palabra 'run' para ejecutarse. Generalmente es el script estandar para iniciar un proyecto.