Files
old-website/server.js
2023-01-04 20:58:41 +01:00

90 lines
3.1 KiB
JavaScript
Executable File

/*
*
* janishutz.com - Backend
* server.js
*
* Developed 2023 by Janis Hutz
*
*/
var ejs = require( 'express' );
var path = require( 'path' );
var http = require( 'http' );
var fs = require( 'fs' );
var app = ejs();
app.get( '/', ( request, response ) => {
response.sendFile( path.join( __dirname + '/ui/index.html' ) );
});
app.get( '/:filename', ( request, response ) => {
let fileExtension = '';
if ( request.params.filename.slice( request.params.filename.length - 5, request.params.filename.length ) == '.html' ) {} else {
fileExtension = '.html'
};
fs.readFile( path.join(__dirname + '/ui/' + request.params.filename + fileExtension ), ( err, data ) => {
if ( err ) {
response.status( 404 ).sendFile( path.join( __dirname + '/ui/404.html' ) );
} else {
response.status( 200 ).sendFile( path.join( __dirname + '/ui/' + request.params.filename + fileExtension ) );
};
});
});
app.get( '/css/:filename', ( request, response ) => {
fs.readFile( path.join( __dirname + '/ui/css/' + request.params.filename ), ( err, data ) => {
if ( err ) {
response.status( 404 ).sendFile( path.join( __dirname + '/ui/404.html' ) );
} else {
response.status( 200 ).sendFile( path.join( __dirname + '/ui/css/' + request.params.filename ) );
};
});
});
app.get( '/js/:filename', ( request, response ) => {
fs.readFile(path.join(__dirname + '/ui/js/' + request.params.filename), (err, data) => {
if (err) {
response.status( 404 ).sendFile( path.join( __dirname + '/ui/404.html' ) );
} else {
response.status( 200 ).sendFile( path.join( __dirname + '/ui/js/' + request.params.filename ) );
};
});
});
app.get( '/projects/:filename', ( request, response ) => {
let fileExtension = '';
if ( request.params.filename.slice( request.params.filename.length - 5, request.params.filename.length ) == '.html' ) {} else {
fileExtension = '.html'
};
fs.readFile(path.join(__dirname + '/ui/projects/' + request.params.filename + fileExtension ), (err, data) => {
if (err) {
response.status(404).sendFile( path.join( __dirname + '/ui/404.html' ) );
} else {
response.status(200).sendFile( path.join( __dirname + '/ui/projects/' + request.params.filename + fileExtension ) );
};
});
});
app.get( '/assets/:filename', ( request, response ) => {
fs.readFile(path.join(__dirname + '/ui/assets/' + request.params.filename), (err, data) => {
if (err) {
response.status(404).sendFile( path.join( __dirname + '/ui/404.html' ) );
} else {
response.status(200).sendFile( path.join( __dirname + '/ui/assets/' + request.params.filename ) );
};
});
});
// Serve 404 pages
app.use( ( req, res, next ) => {
if ( req.query.lang == 'en' ) {
res.status( 404 ).sendFile( path.join( __dirname + '/ui/en/errorResponses/404.html' ) );
} else {
res.status( 404 ).sendFile( path.join( __dirname + '/ui/de/errorResponses/404.html' ) );
};
});
http.createServer( app ).listen( 8080 );