nodaje js
node js

tenemos unos buenos años viendo como nodejs y express se ha colocado en un muy buen lugar para el backend, esto es por lo fácil que es desarrollar api rest.

Descarga y configuración

Nodejs

nodejs

Podemos elegir la versión LTS o la Actual, generalmente descargo en versión actual, tengo que aclarar que no hay diferencia entre mac o windows.

Una vez instalado vamos a teclear en la consola lo siguiente:

consola nodejs

Con esto vamos a ver que todo salió bien y ya podemos iniciar nuestros proyectos.

Vamos a crear una carpeta para nuestro proyecto.

Vamos a iniciar el proyecto usando npm init:

NPM es el gestor de contenidos que usa nodejs, aquí encontraremos herramientas muy útil para mejorar nuestro desarrollo, este ya viene integrado cuando instalamos nodejs

npn init nodejs

Nos pediran varios cosas, configurar nombre del paquete, la versión que vamos a tener (enter si no vas a cambiar nada), entry point es donde estará nuestra llamada principal.

una vez listo vamos a crear nuestro index.js (home).

Vamos a instalar express en nodejs abrimos la consola en el proyecto y escribimos lo siguiente:

npm i express –save

una vez instalado nodejs y express vamos a realizar el primer hola mundo

Webservices en nodejs y express

En nuestro archivo index.js vamos a copiar el siguiente código

const express = require('express');

const app = express();
app.get('/', function(req, res) {
    respuesta = {
        error: true,
        codigo: 200,
        mensaje: 'hola mundo'
    };
    res.send(respuesta);
});

app.use(function(req, res, next) {
    respuesta = {
        error: true,
        codigo: 404,
        mensaje: 'URL no encontrada'
    };
    res.status(404).send(respuesta);
});

app.listen(8888, () => {
    console.log("El servidor está inicializado en el puerto 8888");
});

En nodejs podemos usar var, let o const, vamos usar const para nuestras variables iniciales.

app va a ser nuestra configuración inicial y por donde vamos a llamar todo express, aquí recibimos informacion y tambien mandamos.

const app = express();
app.get('/', function(req, res) {
    respuesta = {
        error: true,
        codigo: 200,
        mensaje: 'hola mundo'
    };
    res.send(respuesta);
});

Podemos ver que app.get(……..) tenemos ya nuestra primera llamada api rest, recordemos que tenemos los siguientes tipos mas comunes:

  • GET
  • POST
  • PUT
  • DELETE

si por ejemplo queremos hacer llamadas de cualquier tipo rest se verian de la siguiente manera:

  • app.get()
  • app.post()
  • app.put()
  • app.delete()

estas llamadas nos piden 2 objetos mínimos, ruta de api rest y callback, por ejemplo yo quiero poner un post y para llegar a ello van a entrar en localhost:8888/hola, tendremos que poner “/hola” en nuestra llamada app.post y enseguida un function para hacer alguna tarea.

function(req, res){} o (req, res) => {} vemos que tenemos 2 atributos, req nos traer un objeto http, aquí encontraremos como la url que está buscando, informacion del body, informacion del header, res es un objeto donde dará una respuesta al que está consumiendo nuestro ws

en la consola de comando ponemos node index.js

vamos a correr nuestra aplicación y vamos a abrir nuestro navegador en localhost:8888 nos va a aparecer lo siguiente

hola mundo nodejs
hola mundo

podemos ver que con nodejs y express la sentencia res.send envía una respuesta, yo envie un objeto tipo json, pero podemos enviar texto plano.

Vamos a hacer una llamado post que se llame HOLA y envie 2 parametros

vamos a instalar npm i body-parse –save para ser más fácil obtener información de http-body

codigo completo:

const express = require('express');
const bodyParser = require('body-parser');

const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.get('/', function(req, res) {
    respuesta = {
        error: true,
        codigo: 200,
        mensaje: 'Punto de inicio'
    };
    res.send(respuesta);
});
app.get('/mensaje', function(req, res) {
    res.send('<h1> Mi primer WS</h1>' + '<p>esto recibio del parametro a: </p>' + req.query.a + '<p>esto recibio del parametro b: </p><b>' + req.query.b + '</b><h2>Adios</h2>');
});

app.post('/hola', (req, res) => {
    console.log(req.body)
    var { a, b } = req.body;
    respuesta = {
        error: true,
        codigo: 200,
        mensaje: { a: a, b: b, texto: a + ' - ' + b }
    };
    res.send(respuesta);


});

app.use(function(req, res, next) {
    respuesta = {
        error: true,
        codigo: 404,
        mensaje: 'URL no encontrada'
    };
    res.status(404).send(respuesta);
});


app.listen(8888, () => {
    console.log("El servidor está inicializado en el puerto 8888");
});

si abrimos postman y llamamos a localhost:8888/hola y mandamos un el body lo siguiente y le damos enviar, podemos ver nuestra respuesta.

funcion al que llama

app.post('/hola', (req, res) => {
    console.log(req.body)
    var { a, b } = req.body;
    respuesta = {
        error: true,
        codigo: 200,
        mensaje: { a: a, b: b, texto: a + ' - ' + b }
    };
    res.send(respuesta);


});

respuesta:

Podemos crear HTML enviando en send los tag correspondiente por ejemplo:

app.get('/mensaje', function(req, res) {
    res.send('<h1> Mi primer WS</h1>' + '<p>esto recibio del parametro a: </p>' + req.query.a + '<p>esto recibio del parametro b: </p><b>' + req.query.b + '</b><h2>Adios</h2>');
});

si entramos en el navegador de la siguiente manera vamos a ver

url: http://localhost:8888/mensaje?a=hola%20se%C3%B1ores&b=como%20estas

Con esto podemos ver que de forma muy rápido ya tenemos varias llamadas api rest.

En siguientes post vamos a profundizar un poco más en conexión a mongodb, otro tipos de llamadas post y creaciones de archivos

no olvides en unirte en nuestro grupo de telegram

Si tienen dudas o mejoras no duden en ponerlo en los comentarios

por Cesar Flores

Programador de tiempo completo, Gamer de medio tiempo y fotógrafo ocasionalmente, me gusta el front-end y mi framework favorito es angular aunque no por eso le hago el feo a un nuevo lenguaje.

3 comentario en “Primeros pasos en nodejs y express”

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.