Skip to content

Commit

Permalink
fix(api): fix nextjs error handler (#882)
Browse files Browse the repository at this point in the history
This PR removes a custom error handler that sometimes caused issues by sending headers after some
content had already been sent.
  • Loading branch information
gauthier-th authored Jul 24, 2024
1 parent c96ca67 commit 0116c13
Showing 1 changed file with 11 additions and 18 deletions.
29 changes: 11 additions & 18 deletions server/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ import { getClientIp } from '@supercharge/request-ip';
import { TypeormStore } from 'connect-typeorm/out';
import cookieParser from 'cookie-parser';
import csurf from 'csurf';
import type { NextFunction, Request, Response } from 'express';
import express from 'express';
import * as OpenApiValidator from 'express-openapi-validator';
import type { Store } from 'express-session';
Expand Down Expand Up @@ -180,6 +179,16 @@ app
);
const apiDocs = YAML.load(API_SPEC_PATH);
server.use('/api-docs', swaggerUi.serve, swaggerUi.setup(apiDocs));
/**
* Workaround to avoid the error from the OpenAPI validator when an user send a
* request without any session cookie
*/
server.use((req, res, next) => {
if (!req.cookies['connect.sid']) {
req.cookies['connect.sid'] = 'none';
}
next();
});
server.use(
OpenApiValidator.middleware({
apiSpec: API_SPEC_PATH,
Expand All @@ -203,23 +212,7 @@ app
// Do not set cookies so CDNs can cache them
server.use('/imageproxy', clearCookies, imageproxy);

server.get('*', (req, res) => handle(req, res));
server.use(
(
err: { status: number; message: string; errors: string[] },
_req: Request,
res: Response,
// We must provide a next function for the function signature here even though its not used
// eslint-disable-next-line @typescript-eslint/no-unused-vars
_next: NextFunction
) => {
// format error
res.status(err.status || 500).json({
message: err.message,
errors: err.errors,
});
}
);
server.all('*', (req, res) => handle(req, res));

const port = Number(process.env.PORT) || 5055;
const host = process.env.HOST;
Expand Down

0 comments on commit 0116c13

Please sign in to comment.