Estoy usando Express y ExcelJs para crear un CSV que los usuarios pueden descargar. Estoy enviando a los usuarios un correo electrónico usando Sendgrid y colocando los parámetros en un enlace en el correo electrónico que genera dinámicamente el CSV. Todo funciona localmente y en Mac. Pero en mi computadora con Windows, lo que sucede es que cuando hago clic en el enlace, se abre temporalmente una nueva pestaña y luego se cierra. Aquí está el código de ExcelJs que se devuelve desde el script que realmente crea el CSV (con toda la lógica CSV excluida):
return await workbook.xlsx.writeBuffer()entonces este es el código Express que envía el CSV al usuario en la respuesta:
const buffer = await generateWorkbook(csvData, styleInfo) res.status(200) .set("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") .attachment("csv.xlsx") .send(buffer)¿Alguna idea de por qué esto no funciona en todas las plataformas? Pregunta de seguimiento, si no es posible que este enfoque funcione en todas las plataformas, ¿sería un enfoque más consistente crear una nueva pestaña, enviar al usuario a una página en nuestro dominio, luego iniciar la descarga desde allí y cerrar la ¿nueva pestaña?