Added error handler to web server.

This commit is contained in:
DebaucheryLibrarian
2021-02-26 19:39:48 +01:00
parent f018735052
commit 0eba0461c9
5 changed files with 55 additions and 1 deletions

17
src/web/error.js Normal file
View File

@@ -0,0 +1,17 @@
'use strict';
const logger = require('../logger')(__filename);
function errorHandler(error, req, res, _next) {
logger.warn(`Failed to fulfill request to ${req.path}: ${error.message}`);
if (error.httpCode) {
res.status(error.httpCode).send(error.message);
return;
}
res.status(500).send('Oops... our server messed up. We will be investigating this incident, our apologies for the inconvenience.');
}
module.exports = errorHandler;

View File

@@ -18,9 +18,11 @@ async function fetchSceneApi(req, res) {
async function fetchScenesApi(req, res) {
const query = req.query.query || req.query.q;
const limit = req.query.limit && Number(req.query.limit);
const relevance = req.query.relevance && Number(req.query.relevance);
const releases = query
? await searchScenes(query, req.query.limit, req.query.relevance)
? await searchScenes(query, limit, relevance)
: await fetchScenes(req.query.limit);
res.send({ scenes: releases });

View File

@@ -17,6 +17,7 @@ const PgOrderByRelatedPlugin = require('@graphile-contrib/pg-order-by-related');
const logger = require('../logger')(__filename);
const knex = require('../knex');
const { ActorPlugins, SitePlugins, ReleasePlugins } = require('./plugins/plugins');
const errorHandler = require('./error');
const {
fetchScene,
@@ -124,6 +125,7 @@ async function initServer() {
});
});
router.use(errorHandler);
app.use(router);
const server = app.listen(config.web.port, config.web.host, () => {