Documente Academic
Documente Profesional
Documente Cultură
//setting
app.set('port',process.env.PORT || 4000);
//middleware (es una funcion que se ejecuta cada vez que se envia una peticion al
servidor)
app.use(morgan('dev'));
//Global Variables
//Routes
//Public
"scripts": {
"dev": "nodemon src/index.js"
},
Ahora en la carpeta de routes creamos el archivo index.js y le damos los siguientes parámetros
básicos
router.get('/',(req,res) => {
res.send('Hello World')
});
//exportamos el objeto
module.exports = router;
//Routes
app.use(require('./routes/index.js'));
//definimos las rutas de nuestras carpetas para poder llamarlas. carpeta views
app.set('views',path.join(__dirname,'views'));
//configuramos el motor de plantillas handlbars, le llamaremos hbs
app.engine('.hbs', exphbs({
defaultLayout:'main', //definimos el nombre de la plantilla principal
layoutDir: path.join(app.get('views'), 'layouts'), //definimos la ruta de la
carpeta layout
partialDir: path.join(app.get('views'),'partial'),// definimos la ruta de la
carpeta parcial
extname: '.hbs', // establecemos la extension de los archivos de vistas
(.hbs)
helpers: require('./lib/handlebars') // establcemos el archivo habdlebars.js
en lib para las funciones js
}));
//asignamos el motor de vistas
app.set('view engine', '.hbs');
//exportamos el objeto
module.exports = router;
});
//exportamos el objeto
module.exports = router;
ahora creamos una carpeta en la sección de views llamada links y ahí creamos el
primer archivo add.hbs
ahora debemos crear la carpeta layouts en la carpeta views, y dentro de layouts
un archivo llamado main.hbs (es la template principal), en este archivo ira el
código base
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=links Apps, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Links App</title>
<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<link rel="stylesheet" href="/css/style.css">
</head>
<body>
{{!-- inicio de la seccion que si va cambiar --}}
{{{ body }}}
{{!-- final de la seccion que si va cambiar --}}
<script src="https://kit.fontawesome.com/3762dfca53.js"></script>
</body>
</html>
<div class="row">
<div class="card">
<div class="card-boy">
<div class="form-group">
</div>
<div class="form-group">
</div>
<div class="form-group">
</div>
<div class="form-group">
Save
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
Ahora creamos la ruta que recibirá la petición post, esto en el archivo link.js
//definimos una ruta post para add
router.post('/add',(req,res) => {
//
});
Ahora crearemos una navegación. Para ello creamos una carpeta llamada
partials en la carpeta views y dentro de ella un archivo llamado navigation.hbs y
pegamos una navegación de bootstrap
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-
target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-
label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-
only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricing</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#" tabindex="-1" aria-
disabled="true">Disabled</a>
</li>
</ul>
</div>
</nav>