next.js/test/e2e/app-dir/app-routes/app/advanced/body/streaming/route.ts
route.ts26 lines715 B
import type { NextRequest } from 'next/server'

export async function POST(request: NextRequest) {
  const reader = request.body?.getReader()
  if (!reader) {
    return new Response(null, { status: 400, statusText: 'Bad Request' })
  }

  // Readable stream here is polyfilled from the Fetch API (from undici).
  const stream = new ReadableStream({
    async pull(controller) {
      // Read the next chunk from the stream.
      const { value, done } = await reader.read()
      if (done) {
        // Finish the stream.
        return controller.close()
      }

      // Add the request value to the response stream.
      controller.enqueue(value)
    },
  })

  return new Response(stream, { status: 200 })
}
Quest for Codev2.0.0
/
SIGN IN