我正在尝试csv从node.js服务器流式传输文件。服务器部分非常简单:
csv
server.get('/orders' function(req, res) { res.setHeader('content-type', 'text/csv'); res.setHeader('content-disposition', 'attachment; filename='orders.csv'); return orders.pipe(res); // assuming orders is a csv file readable stream (doesn't have to be a stream, can be a normal response) }
在我的角度控制器中,我正在尝试做这样的事情
$scope.csv = function() { $http({method: 'GET', url: '/orders'}); };
ng-click在我看来,单击按钮时会调用此函数:
ng-click
<button ng-click="csv()">.csv</button>
我查看了有关从Angular服务器中下载文件的其他答案,但没有找到适合我的方法。有一种常见的方法吗?看起来应该很简单。
$http服务返回一个promise具有两个回调方法的,如下所示。
$http
promise
$http({method: 'GET', url: '/someUrl'}). success(function(data, status, headers, config) { var anchor = angular.element('<a/>'); anchor.attr({ href: 'data:attachment/csv;charset=utf-8,' + encodeURI(data), target: '_blank', download: 'filename.csv' })[0].click(); }). error(function(data, status, headers, config) { // handle error });