Proyecto de 5 capas con nodeJS
Al modelo de MVC vamos a añadir dos capas mas:
- Capa de servicio: Es una capa usada por web y otro tipo de aplicaciones.
- Capa de datos: Capa de la persistencia de datos.
Por ejemplos vamos a crear una nueva carpeta llamada miProyecto o el nombre que queramos.
Abrimos una ventana de cmd si es en
windows o un nuevo terminal en linux.
Accdemos a la carpeta inicial de
nuestro proyecto y ejecutamos el comando npm init para crear el fichero
package.json donde nos hara una serie de preguntas:
package name: (miproyecto) Ponemos el nombre del proyecto que queramos o dejamos
el que nos dice por defecto.
version: (1.0.0) Numero de la versión.
description: Descripción del proyecto.
entry point: (main.js) Ponemos el archivo de inicio del proyecto,lo dejamos
como esta o ponemos el queramos.
los demas le damos a enter en vacio
sin problemas y el unico que podemos cambiar podria ser el author.
test command:
git repository:
keywords:
author:
license: (ISC)
Desde la consola instalamos las
siguientes dependencias:
Cada dependencia tendrá su nombre
del modulo y la ultima version modulo.
npm install body-parser
npm install cookie-session
npm install ejs
npm install express
npm install jade
npm install mocha
npm i nodemon -D //como paquete de dependencia, nos ayuda a reiniciar
el servidor.
npm install morgan //middleware que nos va a dar informacion de las
peticiones.
npm install cookie-parser
Insertamos en script las
siguientes lineas:
"start": "node main.js"
"dev": "nodemon ./main.js"
Abrimos el proyecto con visual
estudio code.
Creamos cinco carpetas:
- modelo
- controlador
- vista
- servicio
- datos
Creamos en el directorio principal
un nuevo fichero llamado main.js.
Importamos las siguientes librerias:
Configuramos el servidor por ejemplo en el puerto 4200:
var
bodyParser = require('body-parser');
var
cookie = require('cookie-session');
var
ejs = require('ejs');
var
express = require('express');
var
path = require('path');
var
http = require('http');
var
morgan = require('morgan');
var
cookieParser = require('cookie-parser');
Configuramos el servidor por ejemplo en el puerto 4200:
var port = process.env.PORT || 4200;
var app = express();
var server = http.createServer(app);
server.listen(port, function () {
console.log('Servidor escuchando en
el puerto %d', port);
});
app.set('port', port);
Configuramos los motores de
plantilla que vallamos a usar:
Si usamos jade:
var viewPath = path.join('./vista'); //Establecemos el camino relativo en ./vista
app.set('views',viewPath);
app.set('view engine', 'jade');
Si usamos html:
var viewPath = path.join('./vista');
var viewPath = path.join('./vista');
app.set('views',viewPath);
app.engine('html',ejs.renderFile);
Si usamos ejs:
var viewPath = path.join('./vista'); //Establecemos el camino relativo en ./vista app.set('views', viewPath) app.set('view engine', 'ejs');
Definimos los middlewares que modifican la request:
app.use(bodyParser.json());
app.use(cookieParser());
app.use(bodyParser.urlencoded({ extended: false }));
var viewPath = path.join('./');
app.use(express.static(path.join(viewPath)));
Establecemos el paquete morgan:
app.use(morgan('dev'));
Dentro de la carpeta de
controlador creamos la ruta llamada index.js si vamos a usar jade:
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
res.render('index', { title: 'Bienvenido a Express' });
});
var router = express.Router();
router.get('/', function(req, res, next) {
res.render('index', { title: 'Bienvenido a Express' });
});
module.exports = router;
var express = require('express');
Dentro de la carpeta de controlador
creamos la ruta llamada index.js si vamos a usar html:
var router = express.Router();
router.get('/', function(req, res, next) {
res.render('index.html');
});
module.exports = router;
Otra vez en main.js:
Establecemos el milddeware de inicio en la ruta /:
app.use('/',index);
Establecemos el middleware de ruta no encontrada:
Establecemos el middleware de ruta no encontrada:
app.use(function(req, res, next)
{
res.status = 404;
res.render('error', { error:
'HTTP/1.1 404 Not Found' });
});
});
Establemos la ruta
dentro de main.js:
var index =
require('./controlador/index');
Dentro de la carpeta de
vista creamos los siguientes archivos:
Si usamos el motor de plantillas con jade:
index.jade:
Si usamos el motor de plantillas con jade:
index.jade:
html
head
title Pagina Principal del
proyecto
body
h1 #{title}
error.jade:
error.jade:
html
head
title Pagina no
existente
body
h1 #{error}
Si usamos el motor de plantillas de
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p> Bienvenido </p>
</body>
</html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p> Bienvenido </p>
</body>
</html>
Si usamos el motor de plantillas ejs:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p> Bienvenido </p>
</body>
</html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<p> Bienvenido </p>
</body>
</html>
Inciamos el proyecto con el comando:
npm run dev : Si queremos que se reinice el servidor cada que toquemos
codigo
npm run start: Arranque normal
No hay comentarios:
Publicar un comentario