内容类型解析器
Fastify 只支持 'application/json'
内容类型,如果需要支持不同的内容类型,可以使用 addContentTypeParser
API。
注意,不能为 'application/json'
添加自定义内容类型解析器。
和其他API一样,addContentTypeParser
被封装在它被声明的范围内。这意味着如果把它定义在根作用域,它将会在任何地方都适用。而如果将它声明到一个插件中,它将只会在该插件的作用范围内可用。
使用方法
fastify.addContentTypeParser('application/jsoff', function (req, done) {
jsoffParser(req, function (err, body) {
done(err || body)
})
})
你也可以使用 hasContentTypeParser
API来检查特定的内容解析器是否已经存在。
捕获所有请求
在某些情况下,你需要捕获所有请求,而不管其内容类型如何。使用 Fastify,您只需添加 *
内容类型即可。
fastify.addContentTypeParser('*', function (req, done) {
var data = ''
req.on('data', chunk => { data += chunk })
req.on('end', () => {
done(data)
})
})
以这种方式,所有没有相应内容类型解析器的请求将由指定的函数处理。
记住'application/json'
内容类型总是会被 Fastify 处理。