1

i'd like return csv file on an API with Deno & oak library. I've generated my csv file, but i dont know how can i return it to my GET endpoint for downlload.

    let fileName: string = `./temp/activities`
    fileName += start ? `-(${start})` : ``
    fileName += end ? `-(${end})` : `-(${moment().format('YYYY-MMM-DD')})`
    fileName += `.csv`

    const file = await Deno.open(fileName, { write: true, create: true, truncate: true });
    const header = ["company", "project", "url_project", "activity", "url_activity", "date"];     
    await writeCSVObjects(file, activities, { header });
    file.close();


    ctx.response.body = await Deno.readFile(fileName);
    ctx.response.headers.set("Content-Type", "application/force-download")
    ctx.response.headers.set('Content-disposition', 'attachment; filename=activities.csv');
Jess182
  • 21
  • 4

1 Answers1

1

Well after read deno doc i found correct method:

await Deno.readFile(fileName);

(https://deno.land/typedoc/index.html#readfile)

and its important add header response:

ctx.response.headers.set('Content-disposition', 'attachment; filename=activities.csv');
Jess182
  • 21
  • 4