27 lines
805 B
TypeScript
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')
|