haar
Version:
Cli tool for building and displaying plant-uml diagrams
44 lines (36 loc) • 1.32 kB
JavaScript
const express = require('express')
const exphbs = require('express-handlebars')
const app = express()
const _ = require('lodash')
const path = require('path')
const config = require('./../config')
const logger = require('./../infrastructure').logger
const diagramMetadata = require('./../infrastructure').diagramMetadata
const port = process.env.PORT || 3000
module.exports = () => {
let viewData = _.cloneDeep(config)
let directories = diagramMetadata.getDiagramDirectories()
viewData.directories = _.filter(directories, (dir) => dir.serve)
viewData.directories.forEach((directory) => {
const fileDir = `${directory.path}/${config.assetDirectory}`
const webDir = `/static/${directory.path}`
logger.info(`Serving files from '${fileDir}' at '${webDir}'`)
app.use(webDir, express.static(fileDir))
app.use(express.static('static'))
})
const viewPath = path.resolve(`${__dirname}/../../views`)
logger.info(`Serving views from: ${viewPath}`)
app.set('views', viewPath)
app.engine('handlebars', exphbs({
defaultLayout: 'main',
layoutsDir: `${viewPath}/layouts`
}))
app.set('view engine', 'handlebars')
app.get('/', function (req, res) {
res.render('home', viewData)
})
app.listen(port, () => {
logger.info(`Listening on port ${port}`)
})
}