---
description: >-
  El siguiente contenido es con fines educativos y no estará dentro del proyecto
  final del carrito de compras.
---

# Node.js

### JavaScript del Lado del Servidor

Las primeras formas de usar de JavaScript fueron en los browsers. Pero esto es sólo el contexto. Define lo que puedes hacer con el lenguaje, pero no dice mucho acerca de lo que el lenguaje mismo puede hacer. JavaScript es un lenguaje "completo": Lo puedes usar en muchos contextos y alcanzar con éste, todo lo que puedes alcanzar con cualquier otro lenguaje "completo".

Node.js realmente es sólo otro contexto: te permite correr código JavaScript en el backend, fuera del browser.

Para ejecutar el código JavaScript que tu pretendes correr en el backend, este necesita ser interpretado y, bueno, ejecutado, esto es lo que **Node.js** realiza, haciendo uso de la Maquina Virtual V8 de Google, el mismo entorno de ejecución para JavaScript que Google Chrome utiliza.

.En esta primera parte solo quiero ensañarte como podríamos crear un simple servidor http usando Node.js, para eso vamos a escoger uno de los muchos módulo que nos ofrece Node.js,  **http**.

#### HTTP

El módulo http es el que nos va a permitir crear un servidor que pueda recibir peticiones HTTP, para esto necesitamos primero crear un servidor. Vamos a crear un archivo llamado **server.js**, este archivo pueden crearlo en cualquier lugar, ahora vamos a editarlo y copiar el siguiente código.

```javascript
// server.js
'use strict';
const http = require('http');
const server = http.createServer(function (req, res) {
    res.writeHead(200, {'content-type': 'text/plain'});
    res.end('Hola Mundo');
});
server.listen(8000);

```

Ahora solo debemos ejecutar este archivo, para eso vamos a la terminal, nos ubicamos donde se encuentra nuestro archivo **server.js** y lo ejecutamos.

```bash
node server.js
```

Vayan a su navegador preferido e ingresen a [http://localhost:8000](http://localhost:8000/), y podrán ver el Hola Mundo.

#### _Nota:_

Para nuestro taller vamos ayudarnos de [Express.js](https://expressjs.com) para agilizar el desarrollo y tener mejores herramientas.
