Fastify の fastify.get() のハンドラで reply.send() にオブジェクトを渡すとどうなりますか?
1〜4キーで選択、Enterで回答できます
解説
正解は「JSON にシリアライズされ」です。Fastify では reply.send() にオブジェクトや配列を渡すと、内部の高速シリアライザ(JSON への変換処理)が自動で JSON 文字列に変換し、Content-Type も自動で付与されます。基本の書き方fastify.get('/users', (request, reply) => { // オブジェクトを渡すだけで JSON レスポンスになる reply.send({ id: 1, name: 'Taro' }); });渡した値の型によって既定の Content-Type は切り替わります。文字列なら text/plain; charset=utf-8、Buffer なら application/octet-stream です。明示したい場合は reply.type('application/json').send(data) のように書けます。ほかの選択肢が成り立たない理由「Buffer に変換され」るのは、こちらが最初から Buffer を渡した場合の挙動です。オブジェクトが勝手に Buffer 化されることはありません。「String(obj) で文字列化され」ることはないため、[object Object] という文字列が返ることもありません。「文字列化されずに破棄され」ることはなく、Content-Type は型に応じて必ず設定されます。async ハンドラでは return reply を忘れずにハンドラを async にすると、reply.send() による送信に加えて関数の戻り値もレスポンスとして扱われます。二重送信の警告を避けるため、return reply.send(data) と書くか、あるいは reply.send() を使わず return data だけにするのが安全です。return data の場合も同様に自動で JSON 化されます。参考Fastify Documentation - ReplyFastify Documentation - Routes