Vamos a hacer un blog desde cero. Va a tener una funcionalidad muy básica, sin ni siquiera incluir un sistema de usuarios.
Preparación
Tendremos que tener instalado todo lo que hemos ido explicando a lo largo del resto de pasos.
Creamos una nueva carpeta que se llame "Blog" y accedemos a ella desde la terminal. Dentro creamos la siguiente estructura de archivos:
Blog/
controller/
blog.js
model/
post.js
views/
layout.jade
index.jade
article.jade
public/
app.js
Procfile
package.json
Empecemos por app.js, que es donde se está ejecutando el servidor basado en express.js. Dentro de app.js tendremos:
// Definición de las variables a usar
var express = require('express');
var app = express();
var bodyparser = require('body-parser');
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var blogController = require('./controler/blog');
// Configuración del servidor
app.set('views', './views');
app.set('view engine', 'jade');
app.use(express.static('public'));
app.use(bodyparser.urlencoded({ extended: false }));
// Las rutas que acepta blog
app.get('/', blogController.index);
app.get('/write', blogController.write);
app.post('/write', blogController.save);
app.get('/:id', blogController.article);
// Lanzar el servidor en el puerto que toca
app.listen(process.env.PORT || 3000, function () {
console.log('Example app listening on port 3000!');
});
Como vemos, lo único que están haciendo las rutas es llamar al controlador que se encuentra en controller/blog.js y el resto de app.js es configuración de diferentes tipos del servidor.
Ahora abrimos controller/blog.js a ver qué tiene: