Играя с fastify и объектом схемы на маршрутах, я пытаюсь добавить больше проверок. быстрое использование (для проверки тела) ajv. Следуя документации и коду fastify, чтобы добавить плагин ajv, мне нужно сделать следующее:
const fastify = require('fastify')({
ajv: {
plugins: [
require('ajv-merge-patch')
]
}
})
Документация находится здесь
Проблема в том, что когда мы пытаемся добавить этот плагин, я получаю эту ошибку: Cannot read property 'code' of undefined"
и это ошибка стека:
TypeError: Cannot read property 'code' of undefined
at addFormats (/test-api/node_modules/ajv-formats/dist/index.js:30:26)
at Array.formatsPlugin (/test-api/node_modules/ajv-formats/dist/index.js:15:5)
at ValidatorCompiler (/test-api/node_modules/fastify/lib/schema-compilers.js:42:16)
at buildCompilerFromPool (/test-api/node_modules/fastify/lib/schema-compilers.js:20:22)
at Boot.<anonymous> (/test-api/node_modules/fastify/lib/route.js:269:39)
at Object.onceWrapper (events.js:421:28)
at Boot.emit (events.js:327:22)
at /test-api/node_modules/avvio/boot.js:153:12
at /test-api/node_modules/avvio/plugin.js:269:7
at done (/test-api/node_modules/avvio/plugin.js:201:5)"
Я получаю эту ошибку с этим фрагментом кода:
const server: FastifyInstance<Server, IncomingMessage, ServerResponse > = fastify({
ignoreTrailingSlash: true,
logger: true,
ajv: {
plugins: [
require('ajv-formats')
]
}
})
async function run (): Promise<string> {
server.addHook('onRoute', (options) => console.log(options))
await server.register(helmet)
await server.register(cors)
return server.listen(3000, 'localhost')
}
Кто-нибудь смог использовать ajv-formats
с fastify или не могли бы вы помочь мне, пожалуйста?
Заранее спасибо!