Added index
This commit is contained in:
@@ -1,18 +1,18 @@
|
||||
var express = require('express');
|
||||
var fs = require('fs');
|
||||
var log = require('log');
|
||||
const express = require('express');
|
||||
const fs = require('fs');
|
||||
const log = require('log');
|
||||
|
||||
module.exports = function(app) {
|
||||
module.exports = function(app, controllersDir = __dirname + '/../controllers') {
|
||||
|
||||
log.debug("Loading controllers :");
|
||||
|
||||
fs.readdirSync(__dirname + '/../controllers').forEach(function(name) {
|
||||
fs.readdirSync(controllersDir).forEach(function(name) {
|
||||
|
||||
// views.js in controller, with function as pages (views.py for django)
|
||||
var obj = require('./../controllers/' + name + '/views');
|
||||
let obj = require(controllersDir + '/' + name + '/views');
|
||||
|
||||
// urls.js, just like django urls.py
|
||||
var urls = require('./../controllers/' + name + '/urls');
|
||||
let urls = require(controllersDir + '/' + name + '/urls');
|
||||
name = obj.name || name;
|
||||
|
||||
// allow specifying the view engine
|
||||
@@ -24,10 +24,10 @@ module.exports = function(app) {
|
||||
|
||||
app.get(url.url, ((url) => function(req, res, next) {
|
||||
|
||||
var path = obj[url.view](req, res, function(view) {
|
||||
let path = obj[url.view](req, res, function(template) {
|
||||
|
||||
let viewPath = __dirname + '/../controllers/' + name + '/views/' + view;
|
||||
res.render(viewPath, res.locals, function(err, out) {
|
||||
let templatePath = controllersDir + '/' + name + '/templates/' + template;
|
||||
res.render(templatePath, res.locals, function(err, out) {
|
||||
if (err !== null) {
|
||||
log.pugerror(err);
|
||||
}
|
||||
|
||||
@@ -1,17 +1,30 @@
|
||||
let urls = {};
|
||||
|
||||
class Url {
|
||||
constructor(url, view, name) {
|
||||
this.url = url;
|
||||
this.view = view;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
toString() {
|
||||
return this.url;
|
||||
}
|
||||
}
|
||||
|
||||
function getUrl(name) {
|
||||
return urls[name].url;
|
||||
}
|
||||
|
||||
module.exports = function(req, res, next) {
|
||||
res.locals.urls = urls;
|
||||
res.locals.getUrl = getUrl;
|
||||
return next();
|
||||
}
|
||||
|
||||
module.exports.url = function(url, viewName, urlName) {
|
||||
let ret = {
|
||||
url: url,
|
||||
view: viewName,
|
||||
name: urlName,
|
||||
};
|
||||
module.exports.getUrl = getUrl;
|
||||
|
||||
module.exports.url = function(url, viewName, urlName) {
|
||||
let ret = new Url(url, viewName, urlName);
|
||||
urls[urlName] = ret;
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user