MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie lade ich eine Datei herunter, die mit GridFS gespeichert und mit GraphQL im React/Javascript-Client zurückgegeben wurde?

Ich habe die Datei einfach in einen base64-String konvertiert (verwandte Frage ). ). Geben Sie dann den String im Resolver zurück.

const file_buffer = fs.readFileSync(filepath);
const contents_in_base64 = file_buffer.toString('base64');
return contents_in_base64;

Alternativ können Sie, wenn Sie keinen Zugriff auf die gleiche Datei wie die ursprüngliche Frage haben,

chunk.data.toString('base64')); 

Dann habe ich am Frontend einfach base64 auf ein Anker-Tag gesetzt (verwandte Frage ). ).

<a download={`${filename}.pdf`} href={`data:application/pdf;base64,${base64pdf}`} title='Download pdf document' />