stack-trace-mapper/server/server.js
2019-02-13 21:26:28 +01:00

62 lines
1.6 KiB
JavaScript

'use strict'
process.env.NODE_ENV = process.env.NODE_ENV || 'development'
// modules > native
const path = require('path')
// modules > 3rd party
const express = require('express')
const bodyParser = require('body-parser')
const chalk = require('chalk')
const highlightStack = require('@bmp/highlight-stack')
process.on('uncaughtException', (err) => {
console.error(chalk.red('UNCAUGHT EXCEPTION'))
if (err.stack) {
console.error(highlightStack(err.stack))
} else {
console.error(err)
}
process.exit(1)
})
const server = express()
// set template engine
server.set('view engine', 'ejs')
server.set('views', path.join(__dirname, 'templates'))
server.use('/', express.static('public'))
// set up console logs in dev mode
if (process.env.NODE_ENV !== 'production') {
require('@bmp/console')({ log: true, error: true, dir: true })
const morgan = require('morgan')
server.use(morgan('dev'))
const webpackMiddleware = require('webpack-dev-middleware')
const webpack = require('webpack')
const webpackConfig = require('../webpack.config')
server.use(webpackMiddleware(webpack(webpackConfig)))
}
server.use(bodyParser.json())
server.use(bodyParser.urlencoded({ extended: true }))
// server.use('/', (req, res, next) => {
// console.log('hello')
// res.send('<h1>Hello</h1>')
// })
const port = process.env.port || 1337
console.log(path.resolve(__dirname, '../'))
require('./routes')(server)
server.listen(port, () => {
console.info(`[${chalk.cyan('INIT')}] HTTP Server listening on port ${chalk.magenta(port)} (${chalk.yellow(server.get('env'))})`)
})