node.js

Node es una plataforma que permite la ejecución de código javascript sin hacer uso del navegador.

¿Que incluye node.js?

Al instalar node.js , tendremos acceso a dos herramientas, node y npm.

 

La aplicación node contiene librerías (modulos) y es la encargada de correr el código javascript

 

En cambio npm es un gestor de paquetes

¿Como ejecuto mi código?

Para correr codigo javascript usando node, solo basta utilizar el programa node desde la consola o bien abriendo el programa node el cual aceptara cualquier codigo javascript

Por ejemplo, si creo un archivo llamado hola.js

console.log("Hola Mundo")
$ node hola.js
> Hola Mundo

Globales

Al igual que en el navegador, existen variables globales dentro de node.

 

Una de las mas usada es la variable process que representa el proceso actual.

 

Podemos finalizar el proceso utilizando la funcion exit definida sobre process.

process.exit([code])

Globales

Otras variables globales:

  • global, es la variable sobre la que se define todo
  • console, permite tener un output
  • require, permite la carga de modulos
  • __dirname, hace referencia al directorio actual
  • __filename, nombre del archivo actual
  • module, hace referencia al modulo actual

Argumentos

Al ejecutar un archivo javascript, podemos pasarle argumentos y accederlos luegos desde el atributo argv de la variable global process

process.argv
console.log(process.argv)

$ node argumentos.js hola
> ["node", "argumentos.js", "hola"]

Por ejemplo

Librerias

Podemos cargar las librerias de node utilizando la función require.

require(nombre del modulo)

Por ejemplo

var fs = require('fs')

Libreria fs

La libreria fs se encarga de manejar la Entrada-Salida del Sistema de archivos. Con esta libreria, vamos a poder leer y escribir (entre otras cosas) archivos.

fs.readFile(file,encode,callback)

Para leer

fs.writeFile(file,text,callback)

Para escribir

Nuestras Librerias

Podemos cargar nuestras librerias utilizando la función require y pasandole como argumento el archivo a cargar.

require('carpeta/modulo')

Por ejemplo

NPM

NPM es un gestor de paquetes. Nos permitira instalar modulos creados por nosotros u otras personas y hacer uso de los mismos de una manera prolija.

 

Para instalar un paquete solo basta usar el comando npm install seguido del nombre del paquete a instalar

$ npm install my_paquete

NPM

Al instalar un paquete, npm nos creara una carpeta node_modules donde incluirá los archivos descargados.

$ npm install my_paquete --global

Podemos instalar paquetes de forma global, pasando como argumento --global

Podemos agregar el paquete a nuestro sistema, pasando como argumento --save

$ npm install my_paquete --save

package.json

Todos los módulos instalables desde npm contienen un archivo llamado package.json el cual describe el paquete a instalar.

{
  "name": "nombre del paquete",
  "version": "1.0.0",
  "description": "algun detalle",
  "main": "index.js",
  "dependencies": {
    "lodash": "^2.4.1"
  }
}

Libreria HTTP

  • Permite convertir nuestra aplicación en un servidor HTTP.
  • Permite realizar peticiones HTTP.
  • Permite escuchar peticiones HTTP.

El manejo de peticiones, se realiza mediante el request y response.

Gestiona la Entrada-Salida en la red.

Request

El objeto request contiene la información de la petición realizada (entrada), como por ejemplo

 

  • Tipo (GET, POST, PUT, ...)
  • URL (/usuarios)
  • Parámetros adicionales (/usuarios?1 ---> 1)

Response

El objeto response contiene la información que sera enviada (salida) la cual contendrá

 

  • Cabecera (Tipo de dato, sesión, etc)
  • Cuerpo (JSON, XML, HTML, etc)

 

Codigos de estados HTTP

Se utilizan para informar el estado de la petición

  • 1xx - Informativos
  • 2xx - Éxito
  • 3xx - Redirección
  • 4xx - Error en el cliente 
  • 5xx - Error en el servidor

CRUD vs REST

REST/HTTP CRUD
GET Read
POST Read,Update,Delete
PUT Update
DELETE Delete

Se hace referencia a CRUD cuando se habla de operaciones definidas sobre Bases de Datos. En cambio REST es una arquitectura para el diseño de sistemas.

Peticiones GET

  • Se utilizan para leer/obtener información.
  • Son peticiones seguras.
  • Solo es posible pasar parámetros en la cabecera.
GET /usuarios

GET /usuarios/1

Peticiones POST

  • Se utilizan para operar sobre entidades.
  • Normalmente son empleadas para crear.
  • Permiten pasar parámetros en el cuerpo y cabecera.
POST /usuarios

Peticiones PUT

  • Se utilizan para operar sobre entidades.
  • Normalmente son empleadas para actualizar.
  • Permiten pasar parámetros en el cuerpo y cabecera.
PUT /usuarios/1

Peticiones DELETE

  • Se utilizan para eliminar entidades..
  • Permiten pasar parámetros en la cabecera.
DELETE /usuarios/1

Peticiones PATH

  • Se utilizan para actualizar atributos particulares de entidades..
  • Permite pasar parámetros en el cuerpo y cabecera.
PATCH /usuarios/1

nodejs

By Neri Guidi

nodejs

  • 483