如您所料,我对Express十分熟悉,但这是我第一次使用Fastify。
我想访问Fastify请求的未修改主体,以进行Webhook的签名验证-即,我希望看到请求传入,并且不受任何中间件的影响。在Express中,这通常是通过访问request.rawBody
来完成的。
如何访问Fastify请求的原始正文?
最佳答案
有一个issue on GitHub for rawBody support
这里有一个“原始物体”模块,使用此模块非常容易:
const rawBody = require('raw-body')
fastify.addContentTypeParser('*', (req, done) => {
rawBody(req, {
length: req.headers['content-length'],
limit: '1mb',
encoding: 'utf8', // Remove if you want a buffer
}, (err, body) => {
if (err) return done(err)
done(null, parse(body))
})
})
我希望我能对您有所帮助,我也是固定的新手