内容类型解析器
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 处理。