
I want to get the file from an api route, but how do i send the file from api route, as its an array buffer and i cant send it using NextResponse.json()
I haven't worked with files, this is my first time
TL;DR
There is a misconception here. You should not send the file in the JSON response since it's an array buffer. Instead of using `NextResponse.json()`, you can use `NextResponse.buffer()` to return the file content. This way, the users can download the file when they access your API route.
My API Route Code
TypeScript
import { SESSION_COOKIE } from "@/const";
import { db, noteAttachmentBucket, noteCollection } from "@/models/name";
import { createSessionClient } from "@/models/server/config";
import { NextRequest, NextResponse } from "next/server";
export async function GET(req: NextRequest) {
try {
const note_id = req.nextUrl.searchParams.get("note_id")
if (!note_id) {
return NextResponse.json({
success: false,
error: "Note ID is required"
}, { status: 400 })
}
const session = req.cookies.get(SESSION_COOKIE)
if (!session || !session.value) {
return NextResponse.json({
success: false,
error: "Unauthorized"
}, { status: 401 })
}
const { databases, storage } = await createSessionClient(session)
const note = await databases.getDocument(db, noteCollection, note_id)
if (!note) {
return NextResponse.json({
success: false,
error: "Note not found"
}, { status: 404 })
}
const viewFile = await storage.getFileView(noteAttachmentBucket, note.file_id)
return NextResponse.json({
success: true,
noteData: {
title: note.title,
description: note.description,
subject: note.subject,
tags: note.tags,
}
})
}
catch (err) {
return NextResponse.json({
success: false,
error: "Internal server error"
}, { status: 500 })
}
}
Recommended threads
- my database attribute stuck in processin...
when i created attributes in collection 3 of those attributes become "processing", and they are not updating, the worst thing is that i cant even delete them s...
- Is Quick Start for function creation wor...
I am trying to create a Node.js function using the Quick Start feature. It fails and tells me that it could not locate the package.json file. Isn't Quick Start ...
- Forever Processing Issue
I encountered an issue when creating attributes in the collections . if you create an attribute of type string for example and choose a size of 200 or 250 or a...
