44 lines
1 KiB
JavaScript
44 lines
1 KiB
JavaScript
import fastify from "fastify";
|
|
import fastifyView from '@fastify/view';
|
|
import autoLoad from "@fastify/autoload";
|
|
import path from "node:path";
|
|
import ejs from "ejs";
|
|
|
|
|
|
const webServer = fastify({ logger: false });
|
|
|
|
// EJS-Renderer
|
|
webServer.register(fastifyView, {
|
|
root: path.join(process.cwd(), 'templates'),
|
|
engine: {
|
|
ejs
|
|
}
|
|
});
|
|
|
|
// file based route loader
|
|
webServer.register(autoLoad, {
|
|
dir: path.join(process.cwd(), "routes"),
|
|
dirNameRoutePrefix: true,
|
|
routeParams: true
|
|
});
|
|
|
|
// load plugins
|
|
// import registerSSOPlugin from './plugins/sso.mjs';
|
|
// await registerSSOPlugin(webServer)
|
|
|
|
// error handling
|
|
webServer.setErrorHandler((error, request, reply) => {
|
|
// gezielt Fehler anzeigen, aber nicht alles loggen
|
|
console.error("! Fehler in Route:", request.url);
|
|
console.error(error);
|
|
|
|
reply.status(500).send({ error: "Internal Server Error" });
|
|
});
|
|
|
|
// start server
|
|
webServer.listen({ port: 3000 }, (err) => {
|
|
if (err) {
|
|
console.error(err);
|
|
process.exit(1);
|
|
}
|
|
});
|