Fastify 中文文档 (v4.28.1)
Table of contents
Warnings
Warnings In Fastify
Fastify utilizes Node.js's warning event API to notify users of deprecated features and known coding mistakes. Fastify's warnings are recognizable by the FSTWRN
and FSTDEP
prefixes on warning code. When encountering such a warning, it is highly recommended that the cause of the warning be determined through use of the --trace-warnings
and --trace-deprecation
flags. These will produce stack traces pointing out where the issue occurs in the application's code. Issues opened about warnings without including this information may be closed due to lack of information.
In addition to tracing, warnings can also be disabled. It is not recommended to disable warnings as a matter of course, but if necessary, they can be disabled by using any of the following methods:
- setting the
NODE_NO_WARNINGS
environment variable to1
- passing the
--no-warnings
flag to the node process - setting 'no-warnings' in the
NODE_OPTIONS
environment variable
For more information on how to disable warnings, see node's documentation.
However, disabling warnings is not recommended as it may cause potential problems when upgrading Fastify versions. Only experienced users should consider disabling warnings.
Fastify Warning Codes
Code | Description | How to solve | Discussion |
---|---|---|---|
FSTWRN001 | The specified schema for a route is missing. This may indicate the schema is not well specified. | Check the schema for the route. | #4647 |
FSTWRN002 | The %s plugin being registered mixes async and callback styles, which will result in an error in fastify@5 . | Do not mix async and callback style. | #5139 |
Fastify Deprecation Codes
Deprecation codes are further supported by the Node.js CLI options:
Code | Description | How to solve | Discussion |
---|---|---|---|
FSTDEP005 | You are accessing the deprecated request.connection property. | Use request.socket . | #2594 |
FSTDEP006 | You are decorating Request/Reply with a reference type. This reference is shared amongst all requests. | Do not use Arrays/Objects as values when decorating Request/Reply. | #2688 |
FSTDEP007 | You are trying to set a HEAD route using exposeHeadRoute route flag when a sibling route is already set. | Remove exposeHeadRoutes or explicitly set exposeHeadRoutes to false | #2700 |
FSTDEP008 | You are using route constraints via the route {version: "..."} option. | Use {constraints: {version: "..."}} option. | #2682 |
FSTDEP009 | You are using a custom route versioning strategy via the server {versioning: "..."} option. | Use {constraints: {version: "..."}} option. | #2682 |
FSTDEP010 | Modifying the reply.sent property is deprecated. | Use the reply.hijack() method. | #3140 |
FSTDEP011 | Variadic listen method is deprecated. | Use .listen(optionsObject) . | #3712 |
FSTDEP012 | You are trying to access the deprecated request.context property. | Use request.routeOptions.config or request.routeOptions.schema . | #4216 #5084 |
FSTDEP013 | Direct return of "trailers" function is deprecated. | Use "callback" or "async-await" for return value. | #4380 |
FSTDEP014 | You are trying to set/access the default route. This property is deprecated. | Use setNotFoundHandler if you want to custom a 404 handler or the wildcard (* ) to match all routes. | #4480 |
FSTDEP015 | You are accessing the deprecated request.routeSchema property. | Use request.routeOptions.schema . | #4470 |
FSTDEP016 | You are accessing the deprecated request.routeConfig property. | Use request.routeOptions.config . | #4470 |
FSTDEP017 | You are accessing the deprecated request.routerPath property. | Use request.routeOptions.url . | #4470 |
FSTDEP018 | You are accessing the deprecated request.routerMethod property. | Use request.routeOptions.method . | #4470 |
FSTDEP019 | You are accessing the deprecated reply.context property. | Use reply.routeOptions.config or reply.routeOptions.schema . | #5032 #5084 |
FSTDEP020 | You are using the deprecated reply.getReponseTime() method. | Use the reply.elapsedTime property instead. | #5263 |
FSTDEP021 | The reply.redirect() method has a new signature: reply.redirect(url: string, code?: number) . It will be enforced in fastify@v5 '. | #5483 |