/
home
/
infinitibizsol
/
irfarms.infinitibizsol.com
/
node_modules
/
fastify
/
docs
/
Reference
/
File Upload :
llllll
Current File: /home/infinitibizsol/irfarms.infinitibizsol.com/node_modules/fastify/docs/Reference/Errors.md
<h1 align="center">Fastify</h1> ## Errors <a id="errors"></a> ### Error Handling In Node.js <a id="error-handling"></a> #### Uncaught Errors In Node.js, uncaught errors are likely to cause memory leaks, file descriptor leaks, and other major production issues. [Domains](https://nodejs.org/en/docs/guides/domain-postmortem/) were a failed attempt to fix this. Given that it is not possible to process all uncaught errors sensibly, the best way to deal with them is to [crash](https://nodejs.org/api/process.html#process_warning_using_uncaughtexception_correctly). #### Catching Errors In Promises In Node.js, unhandled promise rejections (that is, without a `.catch()` handler) can also cause memory and file descriptor leaks. While `unhandledRejection` is deprecated in Node.js, unhandled rejections will not throw, and still potentially leak. You should use a module like [`make-promises-safe`](https://github.com/mcollina/make-promises-safe) to ensure unhandled rejections _always_ throw. If you are using promises, you should attach a `.catch()` handler synchronously. ### Errors In Fastify Fastify follows an all-or-nothing approach and aims to be lean and optimal as much as possible. The developer is responsible for making sure that the errors are handled properly. #### Errors In Input Data Most errors are a result of unexpected input data, so we recommend [validating your input data against a JSON schema](./Validation-and-Serialization.md). #### Catching Uncaught Errors In Fastify Fastify tries to catch as many uncaught errors as it can without hindering performance. This includes: 1. synchronous routes, e.g. `app.get('/', () => { throw new Error('kaboom') })` 2. `async` routes, e.g. `app.get('/', async () => { throw new Error('kaboom') })` The error in both cases will be caught safely and routed to Fastify's default error handler for a generic `500 Internal Server Error` response. To customize this behavior you should use [`setErrorHandler`](./Server.md#seterrorhandler). ### Errors In Fastify Lifecycle Hooks And A Custom Error Handler From the [Hooks documentation](./Hooks.md#manage-errors-from-a-hook): > If you get an error during the execution of your hook, just pass it to > `done()` and Fastify will automatically close the request and send the > appropriate error code to the user. If you have defined a custom error handler for using `setErrorHandler` the error will be routed there. otherwise, it will be routed to Fastify’s generic error handler. Some things to consider in your custom error handler: - you can `reply.send(data)`, which will behave as it would in [regular route handlers](./Reply.md#senddata) - objects are serialized, triggering the `preSerialization` lifecycle hook if you have one defined - strings, buffers, and streams are sent to the client, with appropriate headers (no serialization) - You can throw a new error in your custom error handler - errors (new error or the received error parameter re-thrown) - will trigger the `onError` lifecycle hook and send the error to the user - an error will not be triggered twice from a lifecycle hook - Fastify internally monitors the error invocation to avoid infinite loops for errors thrown in the reply phases of the lifecycle. (those after the route handler) ### Fastify Error Codes <a id="fastify-error-codes"></a> #### FST_ERR_BAD_URL <a id="FST_ERR_BAD_URL"></a> The router received an invalid url. #### FST_ERR_CTP_ALREADY_PRESENT <a id="FST_ERR_CTP_ALREADY_PRESENT"></a> The parser for this content type was already registered. #### FST_ERR_CTP_BODY_TOO_LARGE <a id="FST_ERR_CTP_BODY_TOO_LARGE"></a> The request body is larger than the provided limit. This setting can be defined in the Fastify server instance: [`bodyLimit`](./Server.md#bodylimit) #### FST_ERR_CTP_EMPTY_TYPE <a id="FST_ERR_CTP_EMPTY_TYPE"></a> The content type cannot be an empty string. #### FST_ERR_CTP_INVALID_CONTENT_LENGTH <a id="FST_ERR_CTP_INVALID_CONTENT_LENGTH"></a> Request body size did not match Content-Length. #### FST_ERR_CTP_INVALID_HANDLER <a id="FST_ERR_CTP_INVALID_HANDLER"></a> An invalid handler was passed for the content type. #### FST_ERR_CTP_INVALID_MEDIA_TYPE <a id="FST_ERR_CTP_INVALID_MEDIA_TYPE"></a> The received media type is not supported (i.e. there is no suitable `Content-Type` parser for it). #### FST_ERR_CTP_INVALID_PARSE_TYPE <a id="FST_ERR_CTP_INVALID_PARSE_TYPE"></a> The provided parse type is not supported. Accepted values are `string` or `buffer`. #### FST_ERR_CTP_INVALID_TYPE <a id="FST_ERR_CTP_INVALID_TYPE"></a> The `Content-Type` should be a string. #### FST_ERR_DEC_ALREADY_PRESENT <a id="FST_ERR_DEC_ALREADY_PRESENT"></a> A decorator with the same name is already registered. #### FST_ERR_DEC_MISSING_DEPENDENCY <a id="FST_ERR_DEC_MISSING_DEPENDENCY"></a> The decorator cannot be registered due to a missing dependency. #### FST_ERR_HOOK_INVALID_HANDLER <a id="FST_ERR_HOOK_INVALID_HANDLER"></a> The hook callback must be a function. #### FST_ERR_HOOK_INVALID_TYPE <a id="FST_ERR_HOOK_INVALID_TYPE"></a> The hook name must be a string. #### FST_ERR_LOG_INVALID_DESTINATION <a id="FST_ERR_LOG_INVALID_DESTINATION"></a> The logger accepts either a `'stream'` or a `'file'` as the destination. #### FST_ERR_PROMISE_NOT_FULFILLED <a id="FST_ERR_PROMISE_NOT_FULFILLED"></a> A promise may not be fulfilled with 'undefined' when statusCode is not 204. #### FST_ERR_REP_ALREADY_SENT <a id="FST_ERR_REP_ALREADY_SENT"></a> A response was already sent. #### FST_ERR_REP_INVALID_PAYLOAD_TYPE <a id="FST_ERR_REP_INVALID_PAYLOAD_TYPE"></a> Reply payload can be either a `string` or a `Buffer`. #### FST_ERR_SCH_ALREADY_PRESENT <a id="FST_ERR_SCH_ALREADY_PRESENT"></a> A schema with the same `$id` already exists. #### FST_ERR_SCH_MISSING_ID <a id="FST_ERR_SCH_MISSING_ID"></a> The schema provided does not have `$id` property. #### FST_ERR_SCH_SERIALIZATION_BUILD <a id="FST_ERR_SCH_SERIALIZATION_BUILD"></a> The JSON schema provided for serialization of a route response is not valid. #### FST_ERR_SCH_VALIDATION_BUILD <a id="FST_ERR_SCH_VALIDATION_BUILD"></a> The JSON schema provided for validation to a route is not valid. #### FST_ERR_SEND_INSIDE_ONERR <a id="FST_ERR_SEND_INSIDE_ONERR"></a> You cannot use `send` inside the `onError` hook. #### FST_ERR_SEND_UNDEFINED_ERR <a id="FST_ERR_SEND_UNDEFINED_ERR"></a> Undefined error has occurred.
Copyright ©2k19 -
Hexid
|
Tex7ure