2023-04-20 16:02:27 +08:00

27 lines
805 B
TypeScript

import { FastifyInstance, FastifyPluginAsync, FastifyReply, FastifyRequest } from 'fastify'
import fastifyPlugin from 'fastify-plugin'
/**
* 将post 和 get 的参数统一到 req.params
*/
declare module 'fastify' {
interface FastifyInstance {
zReqParser: (request: FastifyRequest, reply: FastifyReply) => {}
}
}
const zReqParserPlugin: FastifyPluginAsync = async function (fastify: FastifyInstance, options?: any) {
fastify.addHook('preValidation', async (request: FastifyRequest, reply: FastifyReply) => {
let params = request.params || {}
if (request.query) {
Object.assign(params, request.query)
}
if (request.body) {
Object.assign(params, request.body)
}
request.params = params
})
return
}
export default fastifyPlugin(zReqParserPlugin, '4.x')