personal-website/server.js
2018-08-23 19:52:25 -06:00

58 lines
1.9 KiB
JavaScript

const PORT = 8090;
// var fs = require('fs');
// var https = require('https');
// var http = require('http');
var express = require('express');
var app = express();
// var credentials;
// var useHttps = true;
// try {
// var privateKey = fs.readFileSync('/etc/letsencrypt/live/lenord.me/privkey.pem', 'utf-8');
// var certificate = fs.readFileSync('/etc/letsencrypt/live/lenord.me/fullchain.pem', 'utf-8');
// credentials = {key: privateKey, cert: certificate};
// } catch (error) {
// useHttps = false;
// console.warn('WARN::NOT USING HTTPS, reverting to HTTP');
// console.log(error);
// }
console.log('Starting express server');
// set the view engine to ejs
app.set('view engine', 'ejs');
// add folder for static content:
app.use(express.static(__dirname + '/assets'));
app.get(/\/.*/, function(req, res) {
let pathname = 'pages' + req.path;
let page = pathname.substr(pathname.lastIndexOf('/') + 1);
if (pathname !== null && pathname !== undefined) {
if ((pathname)[pathname.length - 1] === '/') {
pathname += 'index';
page = 'index';
}
if (pathname.includes('projects') && page !== 'index') {
// projects has a custom template that is used for all projects
// so we need to change the pathname that the renderer is using
// to that template:
pathname = pathname.substr(0, pathname.lastIndexOf(page));
pathname += 'project_template'
page = 'partials/md/' + page;
}
}
console.log('request for path: ' + pathname + ', and page: ' + page);
res.render(pathname, {"page": page});
});
app.listen(PORT);
// if (useHttps) {
// var httpsServer = https.createServer(credentials, app);
// httpsServer.listen(PORT);
// } else {
// var httpServer = http.createServer(app);
// httpServer.listen(PORT);
// }