0% encontró este documento útil (0 votos)
139 vistas19 páginas

Guía de Laboratorio MEAN y Express

Este documento describe los pasos para implementar una aplicación web utilizando la plataforma MEAN (MongoDB, Express, Angular y Node.js). Los objetivos son instalar la plataforma MEAN, implementar aplicaciones que acceden a datos en MongoDB y verificar el funcionamiento de las aplicaciones MEAN. Se explican los procedimientos para crear la base de datos, la aplicación, los modelos, controladores, rutas y vistas necesarios para desarrollar una aplicación CRUD completa con MEAN.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
139 vistas19 páginas

Guía de Laboratorio MEAN y Express

Este documento describe los pasos para implementar una aplicación web utilizando la plataforma MEAN (MongoDB, Express, Angular y Node.js). Los objetivos son instalar la plataforma MEAN, implementar aplicaciones que acceden a datos en MongoDB y verificar el funcionamiento de las aplicaciones MEAN. Se explican los procedimientos para crear la base de datos, la aplicación, los modelos, controladores, rutas y vistas necesarios para desarrollar una aplicación CRUD completa con MEAN.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Diseño y Desarrollo de

Software

BASES DE DATOS AVANZADAS

LABORATORIO N° 08

EXPRESS CRUD

Alumno(s): Chua Quispe Ebad Nota

Grupo: “A ” Ciclo: III

Requiere No
Excelente Bueno Puntaje
Criterio de Evaluación mejora acept.
(4pts) (3pts) Logrado
(2pts) (0pts)
Identifica las principales características de la
plataforma Angular y Mean
Implementa aplicaciones empleando la
plataforma Angular y Mean
Implementa aplicaciones Web empleando la
plataforma MEAN que permiten acceder
información de una base de datos MongoDB
Verifica la ejecución de programas creados en
la plataforma MEAN
Es puntual y redacta el informe
adecuadamente
Bases de Datos Avanzadas

Laboratorio 08: Express - Crud


Objetivos:
Al finalizar el laboratorio el estudiante será capaz de:
• Instalar la plataforma de software MEAN compuesta por MongoDB, Express, Angular y [Link]
• Implementar aplicaciones en la plataforma MEAN que acceden información desde MongoDB
• Verificar el funcionamiento de aplicaciones MEAN

Seguridad:

• Ubicar maletines y/o mochilas en el gabinete del aula de Laboratorio.


• No ingresar con líquidos, ni comida al aula de Laboratorio.
• Al culminar la sesión de laboratorio apagar correctamente la computadora y la pantalla, y ordenar
las sillas utilizadas.

Equipos y Materiales:

• Una computadora con:


• Windows 7 o superior
• Instalador del software MongoDB
• Instalador del software [Link]

Procedimiento:
Estructura de la aplicación:

Componentes del lado del Servidor

Controlador Modelos
MongoDB

Rutas Server

AJ AX

Lab Setup

1. Instalación e inicialización de la base de datos MongoDB


1.1. Instale el programa MongoDB en la carpeta C:\MongoDB
1.2. Inicie la instancia de MongoDB.
Componentes del lado
1.3. Restaure la base de datos Lab02 desde el archivo de backup entregado por el instructor
Cliente
([Link])
núcleo [Link]

Guía de Laboratorio No 08-09 Pág. 2


Bases de Datos Avanzadas

2. Instalación e inicialización de la plataforma [Link]


2.1. Descargar node ([Link] ).
2.2. Doble clic al archivo anterior para instalar el software.
2.3. Desde una ventana CMD y verifique la versión instalada de Nodejs:
> node -v

3. Creación de la BD

3.1. Crear [Link]

conn = new Mongo();


db = [Link]("myappdb");

[Link](
[
{nombre: 'Jaime', apellido: 'Farfan', email: 'jfarfan@[Link]',
estado:'A', created_at: new Date('01/23/2020')}
]);

3.2. Ejecutar el archivo [Link]

4. Creación de la aplicación

4.1. Genera la ruta de carpetas \nodejs\appex03 y crea el proyecto usando express

npm install express-generator -g

express --view=hbs node-hbs

Guía de Laboratorio No 08-09 Pág. 3


Bases de Datos Avanzadas

4.2. Nos ubicamos en la carpeta NODE-HBS y luego instalamos los paquetes:

npm install body-parser


npm install mongoose
npm install

4.3. Ejecutar proyecto

npm start

4.4. Agregar en el archivo [Link]

var mongoose = require('mongoose');


var bodyParser = require('body-parser');

4.5. Agregar en el archivo [Link] Conexión a BD

** despues de var app = express();

var mongoDB = 'mongodb://[Link]:27017/myappdb';


[Link](mongoDB, {useNewUrlParser: true,
useUnifiedTopology:true});
[Link] = [Link];
var db = [Link];
[Link]('error', [Link](console, 'MongoDB connection
error:'));

Guía de Laboratorio No 08-09 Pág. 4


Bases de Datos Avanzadas

4.6. Crear la carpeta models y dentro de ella el archivo [Link], editar models/[Link]

var mongoose = require('mongoose');


var Schema = [Link];

var UsuarioSchema = new Schema({


nombre: {type: String, required: true, max: 20},
apellido: {type: String, required: true, max: 20},
email: {type: String, required: true},
estado: {type: String, required: true, max:2},
created_at: { type: Date, default: [Link] }
});

[Link] = [Link]('Usuario', UsuarioSchema);

4.7. Crear la carpeta controllers y dentro de ella el archivo [Link], Editar el


archivo controllers/[Link]

var mongoose = require('mongoose');


var Usuario = require("../models/Usuario");

var usuarioController = {};

[Link] = function(req, res){

[Link]({}).exec(function(err, usuarios){
if( err ){ [Link]('Error: ', err); return; }
[Link]("The INDEX");
[Link]('../views/usuario/index',{usuarios:
usuarios,titulo:'INDEX'} );

});

};

[Link] = function(req, res){


[Link]({_id: [Link]}).exec(function(err,
usuario){
if( err ){ [Link]('Error: ', err); return; }

[Link]('../views/usuario/show', {usuario: usuario} );


Guía de Laboratorio No 08-09 Pág. 5
Bases de Datos Avanzadas

});

};

[Link] = function(req, res){


[Link]('../views/usuario/create');
};

[Link] = function(req, res){


var usuario = new Usuario( [Link] );

[Link](function(err){
if( err ){ [Link]('Error: ', err); return; }

[Link]("Successfully created a usuario. :)");


[Link]("/usuarios/show/"+usuario._id);
//[Link]("/usuarios");
});
};

[Link] = function(req, res) {


[Link]({_id: [Link]}).exec(function (err, usuario)
{
if (err) { [Link]("Error:", err); return; }

[Link]("../views/usuario/edit", {usuario: usuario});

});
};

[Link] = function(req, res){


[Link]( [Link], {$set: {
nombre: [Link],
apellido: [Link],
email: [Link],
estado: [Link]
}}, { new: true },
function( err, usuario){
if( err ){
[Link]('Error: ', err);
[Link]('../views/usuario/edit', {usuario: [Link]}
);
}

[Link]( usuario );

[Link]('/usuarios/show/' + usuario._id);

});
};

[Link] = function(req, res){

[Link]({_id: [Link]}, function(err){


if( err ){ [Link]('Error: ', err); return; }

[Link]("Usuario deleted!");
[Link]("/usuarios");
});

};

[Link] = usuarioController;

4.8. Creación de las rutas, crear el archivo [Link] en la carpeta routes, editar
routes/[Link]
Guía de Laboratorio No 08-09 Pág. 6
Bases de Datos Avanzadas

var express = require('express');


var router = [Link]();

var usuario = require('../controllers/[Link]');

[Link]('/', [Link]);
[Link]('/show/:id', [Link]);
[Link]('/create', [Link]);
[Link]('/save', [Link]);
[Link]('/edit/:id', [Link]);
[Link]('/update/:id', [Link]);
[Link]('/delete/:id', [Link]);

[Link] = router;

4.9. Agregar en [Link], ubicar luego de ‘[Link]('/users', usersRouter)’


var usuarios = require('./routes/usuarios');

[Link]('/usuarios', usuarios);

4.10. Creación de vistas

Crear carpetas

node-hbs/
|-/views/
|-/usuario/
|-/[Link]
|-/[Link]
|-/[Link]
|-/[Link]

Guía de Laboratorio No 08-09 Pág. 7


Bases de Datos Avanzadas

4.11. Editar el archivo usuarios/[Link]

<h1>{{title}}</h1>

<h1> Usuarios</h1>
<p >
<div class="container">
<h3><a href="/usuarios/create">Crear Usuario</a></h3>
<h1>Lista de Usuarios</h1>
{{#if usuarios }}
<table class="table table-hover">
<thead>
<tr>
<th>Nombre</th>
<th>Apellido</th>
<th>Email</th>
<th>Estado</th>
</tr>
</thead>
<tbody>
{{# each usuarios }}
<tr>
<td><a href="/usuarios/show/{{ _id }}">{{
nombre }}</a></td>
<td>{{ apellido }}</td>
<td>{{ email }}</td>
<td>{{ estado }}</td>
</tr>
{{/each}}
</tbody>
</table>
{{~^~}}
Guía de Laboratorio No 08-09 Pág. 8
Bases de Datos Avanzadas

<div>Usuarios no encontrados.</div>
{{/if}}
</div>
</p>

4.12. Editar el archivo usuarios/[Link]

<!DOCTYPE html>
<html>
<head>
<title>Crear Usuario</title>
</head>
<body>
<div class="container">
<h3><a href="/usuarios">Lista de Usuarios</a></h3>
<h1>Crear Nuevo Usuario</h1>
<form action="/usuarios/save" method="post">
<table>
<tbody>
<tr>
<td>Nombre</td>
<td><input type="text" name="nombre"
/></td>
</tr>
<tr>
<td>Apellido</td>
<td><input type="text" name="apellido"
/></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="email"
/></td>
</tr>
<tr>
<td>Estado</td>
<td><input type="text" name="estado"
/></td>
</tr>
<tr>
<td colspan="2"><input type="submit"
value="Grabar" /></td>
</tr>
</tbody>
</table>
</form>
</div>
</body>
</html>

4.13. Editar el archivo usuarios/[Link]

<!DOCTYPE html>
<html>
<head>
<title>Detalle de Usuario</title>
</head>
<body>
<div class="container">
<h3><a href="/usuarios">Lista de Usuarios</a></h3>
<h1>Detalle de Usuario</h1>
<table>
<tbody>
<tr>
<td>Nombre</td>

Guía de Laboratorio No 08-09 Pág. 9


Bases de Datos Avanzadas

<td>{{ [Link] }}</td>


</tr>
<tr>
<td>Apellidos</td>
<td>{{ [Link] }}</td>
</tr>
<tr>
<td>Email</td>
<td>{{ [Link] }}</td>
</tr>
<tr>
<td>Estado</td>
<td>{{ [Link] }}</td>
</tr>
</tbody>
</table>
<h3><a href="/usuarios/edit/{{ usuario._id
}}">EDIT</a></h3>
<form action="/usuarios/delete/{{ usuario._id }}"
method="post">
<button type="submit">DELETE</button>
</form>
</div>
</body>
</html>

4.14. Editar el archivo usuarios/[Link]

<!DOCTYPE html>
<html>
<head>
<title>Editar Usuario</title>
</head>
<body>
<div class="container">
<h3><a href="/usuarios">Lista de Usuarios</a></h3>
<h1>Editar Usuario</h1>
<form action="/usuarios/update/{{ usuario._id }}"
method="post">
<table>
<tbody>
<tr>
<td>Nombre</td>
<td><input type="text" name="nombre"
value="{{ [Link] }}" /></td>
</tr>
<tr>
<td>Apellido</td>
<td><input type="text" name="apellido"
value="{{ [Link] }}" /></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="email"
value="{{ [Link] }}" /></td>
</tr>
<tr>
<td>Estado</td>
<td><input type="text" name="estado"
value="{{ [Link] }}" /></td>
</tr>
<tr>
<td colspan="2"><button
type="submit">Update</button></td>
Guía de Laboratorio No 08-09 Pág. 10
Bases de Datos Avanzadas

</tr>
</tbody>
</table>
</form>
</div>
</body>
</html>

Ejercicio:
1. Aplicando el procedimiento de los ejercicios anteriores implemente el programa de
mantenimiento para un proyecto a elección grupal.

2. Adjunte el código fuente generado para los archivos implementados

Guía de Laboratorio No 08-09 Pág. 11


Bases de Datos Avanzadas

Guía de Laboratorio No 08-09 Pág. 12


Bases de Datos Avanzadas

Guía de Laboratorio No 08-09 Pág. 13


Bases de Datos Avanzadas

Guía de Laboratorio No 08-09 Pág. 14


Bases de Datos Avanzadas

Guía de Laboratorio No 08-09 Pág. 15


Bases de Datos Avanzadas

Guía de Laboratorio No 08-09 Pág. 16


Bases de Datos Avanzadas

Guía de Laboratorio No 08-09 Pág. 17


Bases de Datos Avanzadas

Guía de Laboratorio No 08-09 Pág. 18


Bases de Datos Avanzadas

Conclusiones:
Indicar las conclusiones que llegó después de los temas tratados de manera práctica en este
laboratorio.
• Se utilizan controladores y rutas para manejar las diferentes acciones y vistas relacionadas
• con los usuarios, productos y empleados.
• Se usa MongoDB como base de datos y Mongoose para interactuar con la base de datos
• desde la aplicación [Link].
• Usamos operaciones CRUD para las diferentes colecciones. Se pueden crear nuevos
• empleados, ver detalles, editar informacion y eliminar.
• Se pasan variables desde el controlador a las plantillas para mostrar los datos
• correspondientes.
• Usamos enlaces HTML para navegar entre las diferentes paginas y formularios HTML para
• enviar datos al servidor y realizar operaciones como crear, editar o eliminar empleados.

Guía de Laboratorio No 08-09 Pág. 19

También podría gustarte