This repository has been archived on 2021-02-16. You can view files and clone it, but cannot push or open issues or pull requests.
Nodezzarella/lib/router.js

89 lines
3.0 KiB
JavaScript

const express = require("express"),
router = express.Router(),
promise = require('promise'),
hbs = require('hbs'),
path = require('path'),
log = require("color-logs")(true, true, "Router"),
session = require('express-session'),
Template = require('../classes/Template.class.js'),
Article = require('../classes/Article.class.js'),
Categorie = require('../classes/Categorie.class.js'),
Articles = require('../classes/Controllers/Articles.class.js'),
Categories = require('../classes/Controllers/Categories.class.js');
var template = new Template();
router.get("/", function(req, res){
var categories = new Categories();
Promise.all([
categories.getNav(),
categories.getHomeListArticles("html")
]).then((data) => {
var nav = data[0];
var content = data[1];
res.setHeader("Content-type", "text/html");
var tplData = {
"blogName": config.siteTitle,
"title": config.siteHomeTitle,
"nav": nav,
"content": content,
};
res.render('template.hbs', tplData);
}).catch((err) => {
console.log(err);
throw err;
});
});
router.get("/:uri/", function(req, res){
var categories = new Categories();
Promise.all([
categories.getNav(),
categories.getCategorie(req.params.uri),
]).then(data => {
var nav = data[0];
var categorie = data[1];
categories.getListArticles(categorie, "html").then((result) => {
res.setHeader("Content-type", "text/html");
var tplData = {
"blogName": config.siteTitle,
"title": categorie.getTitle() + " - "+config.siteHomeTitle,
"nav": nav,
"content": result,
};
res.render('template.hbs', tplData);
})
}).catch(err => {
res.setHeader("Content-type", "text/plain");
res.end("erreur");
});
});
router.get("/:categories/:slug", function(req, res){
var categories = new Categories();
var articles = new Articles();
Promise.all([
categories.getNav(),
categories.getCategorie(req.params.categories)
]).then(data => {
var nav = data[0];
var categorie = data[1];
categories.getArticle(categorie, req.params.slug).then((result) => {
res.setHeader("Content-type", "text/html");
var tplData = {
"blogName": config.siteTitle,
"title": categorie.getTitle() + " - "+config.siteHomeTitle,
"nav": nav,
"content": result,
};
res.render('template.hbs', tplData);
})
}).catch(err => {
log.debug(err);
res.setHeader("Content-type", "text/plain");
res.end("erreur");
});
});
router.use(express.static("./public"));
module.exports = router;