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 MundoGlobales
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.argvconsole.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_paqueteNPM
Al instalar un paquete, npm nos creara una carpeta node_modules donde incluirá los archivos descargados.
$ npm install my_paquete --globalPodemos instalar paquetes de forma global, pasando como argumento --global
Podemos agregar el paquete a nuestro sistema, pasando como argumento --save
$ npm install my_paquete --savepackage.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/1Peticiones POST
- Se utilizan para operar sobre entidades.
- Normalmente son empleadas para crear.
- Permiten pasar parámetros en el cuerpo y cabecera.
POST /usuariosPeticiones PUT
- Se utilizan para operar sobre entidades.
- Normalmente son empleadas para actualizar.
- Permiten pasar parámetros en el cuerpo y cabecera.
PUT /usuarios/1Peticiones DELETE
- Se utilizan para eliminar entidades..
- Permiten pasar parámetros en la cabecera.
DELETE /usuarios/1Peticiones PATH
- Se utilizan para actualizar atributos particulares de entidades..
- Permite pasar parámetros en el cuerpo y cabecera.
PATCH /usuarios/1nodejs
By Neri Guidi
nodejs
- 483