보기에 표시된 표의 내용을 CSV 파일로 다운로드해야합니다. .csv 파일로 저장할 수 있도록 테이블의 내용을 제대로 형식화하는 코드가 있습니다 (예 : 열 구분 기호는 쉼표로, 테이블의 각 레코드는 새 행에 있음).길이가 긴 데이터를 CSV 파일로 다운로드
window.location.href = '/download?data=' + encodeURIComponent($scope.csvString);
내가 서버 부분에 대한 NodeJs을 사용하고 있습니다 :
그래서, 내 컨트롤러, 나는 다음과 같은 코드가 있습니다. 여기에 다음과 같은 경로 처리기가 있습니다.
app.get('/download', function (req, res) {
var data = req.query.data;
res.attachment('data.csv');
res.setHeader('Content-Type', 'text/csv');
res.end(data);
});
이것은 완벽하게 작동합니다. 다운로드가 작동하고 다운로드 한 파일의 데이터가 완벽한 CSV 형식입니다. 문제 없음.
테이블에 너무 많은 레코드가있을 때, 즉 데이터가 큰 경우 문제가 발생합니다. 이 때문에 쿼리 매개 변수가 정말 커지고 한계를 초과하므로 GET 요청이 400 (잘못된 요청) 오류와 함께 반환된다고 가정합니다. 분석 결과 요청은 서버에 도달하지 않고 요청이 Chrome 개발자 도구를 사용하지 못했습니다. 브라우저에서 URL은 간단히 www.my_domain.com/download?data=the_lengthy_data
입니다. 그게 전부 야. 웹 페이지가 비어 있거나 비어 있고 파일이 다운로드되지 않습니다.
따라서 긴 데이터를 어떻게 다운로드 할 수 있는지 알고 싶습니다. 내가 만난 모든 예제는 GET 요청을하므로 긴 데이터를 쿼리 매개 변수로 전달해야합니다. 다른 접근법이 있습니까?
서버로 전송 된 프런트 엔드에서 생성 된 CSV 데이터 만 클라이언트로 다시 다운로드 할 수 있습니까? –
@SalehenRahman 네 이해가 정확합니다. – callmekatootie