Como software engineer muchas veces nos cuesta comenzar una nueva app sin tener un laboratorio de codigo que podamos tomar como referencia, es por eso que te traigo esta pequenia app de cine creada con Node.js y Express.js para que comiences sin excusas ese nuevo proyecto que estas procastinando.
1. Creacion del workspace
Para comenzar a preparar nuestro entorno de desarrollo vamos a instalar Visual Studio Code.
Vamos a instalar node.js y npm de forma global para tenerla disponible para futuros proyectos.
Una vez instalado VSCode y node.js, abrimos un nuevo terminal, nos posicionamos en el directorio de nuestra preferencia y vamos a crear la carpeta appcine
mkdir appcine
cd appcine
Abre esta carpeta en Visual Studio Code:
code .
Inicializa el proyecto con npm: Desde la terminal, ejecuta:
npm init -y
Esto generará un archivo package.json con una configuración básica.
2. Configurar los scripts y dependencias de desarrollo
Para ejecutar scripts y manejar dependencias, debemos modificar el archivo package.json
.
Añade scripts para ejecutar el entorno de desarrollo y producción:
"scripts": {
"dev": "nodemon index.js",
"start": "node index.js",
"lint": "eslint ."
}
Instalación de dependencias de desarrollo:
npm install nodemon eslint eslint-plugin-prettier prettier --save-dev
3. Probar el entorno configurado
Una vez configurado todo el entorno, es momento de realizar pruebas para garantizar que todo funcione correctamente.
Para probar el entorno de desarrollo ejecuta
npm run dev
Para ambientes de produccion te recomiendo usar
npm start
Con estos pasos, tu entorno de desarrollo y producción estará listo. Implementar estas prácticas te permitirá mantener una estructura de trabajo ordenada y eficiente. ¡Sigue aprendiendo y mejorando tus habilidades de desarrollo!
4. Instalacion de Express.js
La instalación de Express como dependencia de producción se hace mediante npm (Node Package Manager). Esta dependencia es crucial porque será parte del entorno principal de nuestra aplicación, en contraste con las dependencias de desarrollo que solo se usan durante la fase de desarrollo.
Para instalar Express, abre tu terminal y ejecuta el siguiente comando:
npm install express
Posterior a la instalación, verifica que Express ha sido añadido a tu lista de dependencias de producción, probablemente con la versión 4.17, que es estable y comúnmente utilizada.
5. Creacion de la aplicacion de cine
Tras haber instalado Express, vamos a crear un archivo index.js
donde inicializaremos express en un puerto determinado donde escuchara nuestro servidor HTTP.
const express = require('express');
const app = express();
const port = 3000;
app.listen(port, () => {
console.log(`Servidor corriendo en http://localhost:${port}`);
});
Creamos nuestros datos en formato json simulando el resultado de la lectura de un fichero o la respuesta de en API.
// Lista de películas
const data = [
{
'id': 1,
'name': 'Inception',
'price': 10.99
},
{
'id': 2,
'name': 'The Matrix',
'price': 8.99
},
{
'id': 3,
'name': 'Interstellar',
'price': 12.99
}
];
Tambien vamos a crear endpoints donde recibiremos solicitudes y las procesaremos respectivamente.
// Endpoint para obtener todas las películas
app.get('/movie', (req, res) => {
res.json(data);
});
// Endpoint para obtener una película por ID
app.get('/movies/:id', (req, res) => {
const { id } = req.params;
const movie = data.find(m => m.id === parseInt(id));
if (movie) {
res.json(movie); // Si la película existe, devuelve el objeto
} else {
res.status(404).json({ 'mensaje': 'Película no encontrada' }); // Si no se encuentra, devuelve un error 404
}
});
Quedandonos como resultado un index.js
const express = require('express');
const app = express();
const port = 3000;
// Lista de películas
const data = [
{
'id': 1,
'name': 'Inception',
'price': 10.99
},
{
'id': 2,
'name': 'The Matrix',
'price': 8.99
},
{
'id': 3,
'name': 'Interstellar',
'price': 12.99
}
];
// Endpoint para obtener todas las películas
app.get('/movie', (req, res) => {
res.json(data);
});
// Endpoint para obtener una película por ID
app.get('/movies/:id', (req, res) => {
const { id } = req.params;
const movie = data.find(m => m.id === parseInt(id));
if (movie) {
res.json(movie); // Si la película existe, devuelve el objeto
} else {
res.status(404).json({ 'mensaje': 'Película no encontrada' }); // Si no se encuentra, devuelve un error 404
}
});
app.listen(port, () => {
console.log(`Servidor corriendo en http://localhost:${port}`);
});
Iniciamos nuestro servidor en modo desarollo
npm run dev
Vamos a nuestro navegador y probamos nuestros endpoints