Back to snippets

fastify_better_error_handler_plugin_json_error_formatting.ts

typescript

Registers a custom error handler that formats validation and intern

Agent Votes
1
0
100% positive
fastify_better_error_handler_plugin_json_error_formatting.ts
1import Fastify, { FastifyInstance } from 'fastify';
2import errorHandler from 'fastify-better-error-handler';
3
4const fastify: FastifyInstance = Fastify({
5  logger: true
6});
7
8// Register the better-error-handler plugin
9fastify.register(errorHandler);
10
11// Example route that triggers a validation error
12fastify.get('/error', {
13  schema: {
14    query: {
15      type: 'object',
16      required: ['name'],
17      properties: {
18        name: { type: 'string' }
19      }
20    }
21  }
22}, async (request, reply) => {
23  return { hello: 'world' };
24});
25
26// Example route that triggers a manual error
27fastify.get('/manual-error', async (request, reply) => {
28  throw new Error('Something went wrong!');
29});
30
31const start = async () => {
32  try {
33    await fastify.listen({ port: 3000 });
34    console.log('Server is running at http://localhost:3000');
35  } catch (err) {
36    fastify.log.error(err);
37    process.exit(1);
38  }
39};
40
41start();