У меня есть два файла (server.js и index.html), которые вместе должны позволить мне загрузить файл с помощью сервера nodejs (запускается узлом server.js). Это происходит, когда я нажимаю ссылку, но только в Chrome он запрашивает место, где сохранить файл. В Firefox он просто загружает его в Downloads/todos.csv без каких-либо всплывающих окон, после чего открывает его также в возвышенном режиме без каких-либо действий с моей стороны. Это ожидаемое поведение?
server.js
import express from "express";
import { Parser } from "json2csv";
const app = express();
app.use(express.json());
app.get("/api/export/todos", (req, res) => {
const csv = "id,name,done\n1,Do laundry,false\n2,Write report,true";
res.setHeader("Content-Type", "text/csv");
res.setHeader("Content-Disposition", "attachment; filename=todos.csv");
res.send(csv);
});
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
app.use(express.static(path.join(__dirname, "public")));
app.get("/*", (req, res) => {
res.sendFile(path.join(__dirname, "public", "index.html"));
});
app.listen(3000, () => console.log("Server running on http://localhost:3000"));
index.html
Welcome to the Settings Page
Download Todos CSV
Подробнее здесь: https://stackoverflow.com/questions/798 ... hrome-does