Iniciando aplicación con Nodejs
Para comenzar nuestra aplicación Nodejs, debemos crear el directorio de proyecto con el nombre que desee, luego a través de nuestro terminal ir a la raíz de nuestro proyecto. Una vez en la raíz creamos nuestro primer archivo app.js:
$ touch app.js
Ahora vamos a añadir el siguiente código dentro de app.js :
const http = require('http')
const port = 3000
const server = http.createServer((request, response) => {
response.writeHead(200, {'Content-Type' : 'text/html'})
response.end('Hello Nodejs')
})
server.listen(3000, () => {
console.log(`Nodejs running on PORT ${port}`)
})
Para ejecutar nuestra aplicacion Nodejs, atravez del termina ejecutamos el siguiente comando:
$ node app.js
Modulos (Modules)
Nodejs utiliza un sistema modular, cada módulo representa un bloque de códigos el cual podemos integrar a nuestra aplicación. Para integrar módulos a nuestro proyecto utilizamos la función require
.
const http = require('http')
Crear tu propio modulo
Podemos crear nuestro propio módulo creando un archivo nuevo y utilizando palabra reservada exports
, creamos el archivo greeting.js y incluimos el siguiente código:
const currentDate = new Date()
module.exports.date = currentDate
module.exports.getMessage = (name) => {
const hour = currentDate.getHours()
if(hour > 16) {
return `Good evening, ${name}`
}
else if(hour > 10) {
return `Good afternoon, ${name}`
}
else {
return `Good morning, ${name}`
}
}
Para integrar el modulo creado utilizamos la palabra reservada require
const greeting = require('./greeting')
Como resultado final tendremos el siguiente código en app.js
const http = require('http')
const greeting = require('./greeting')
const port = 3000
const server = http.createServer((request, response) => {
const greet = greeting.getMessage('John')
response.writeHead(200, {'Content-Type' : 'text/html'})
response.end(greet)
})
server.listen(3000, () => {
console.log(`Nodejs running on PORT ${port}`)
})
Definindo constructores y objetos dentro de módulos
En adición de definir simple funciones y propiedades, dentro de modulos podemos definir objetos mas complejo y luego utilizarlos por medio de constructores. Para el próximo ejemplo creamos el archivo user.js
function User(name, age) {
this.name = name
this.age = age
this.displayInfo = function() {
return `Name: ${this.name} Age: ${this.age}`
}
}
User.prototype.sayHi = function() {
return `Hello my name is ${this.name}`
}
module.exports = User
Como resultado final tendremos el siguiente código en app.js
const http = require('http')
const User = require('./user')
const port = 3000
const server = http.createServer((request, response) => {
const john = new User("John", 32)
response.writeHead(200, {'Content-Type' : 'text/html'})
response.end(john.sayHi())
})
server.listen(3000, () => {
console.log(`Nodejs running on PORT ${port}`)
})
Objetos globales
Nodejs contiene múltiples variables el cual podemos acceder dentro de cualquiera de los módulos de Nodejs, todos estos objetos están atados a una variable llamada global
, similar a la variable global window
el cual encontramos en el navegador, esta contiene métodos relacionado a procesos o otras propiedades de la aplicación. A estos objetos atados a la variable global
le llamamos objetos globales. Dentro de estos objetos se encuentra las siguientes variables:
process
Provee interaccion al momento de ejecucion de los proceso de Nodejs.
require
Funcion que nos permite integrar libreria o codigos de externos.
module
y module.exports
Nos permite exportar código para que pueda ser utilizado.
setTimeout
y setInterval
Misma funciones encontrada en el navegador.
__dirname
y __filename
Nos devuelve camino absoluto a directorios o archivos.
Añadir librerías de tercero
Existen módulos creados por tercero el cual podemos incluir a nuestra aplicacion Nodejs, estos módulos pueden ser integrados a nuestra aplicación utilizando NPM, NPM es una pequeña aplicación que nos permite manejar módulos o paquete. Para comenzar con NPM en el proyecto. Debemos navegar atraves de nuestro terminal, ir a la raíz de nuestro proyecto. Una vez en la raíz iniciamos nuestro directorio de aplicación con:
$ npm init
Luego de llenar nuestra informacion al proyecto y iniciarlo, vamos a añadir los paquetes necesario para nuestra aplicacion.
$ npm -i -save express