Javascript sendFile正在抛出异常无效json?
我正在将文件发送给客户端下载,但当我从文件接收到以下数据时,其抛出的异常json无效,是否有其他方法发送文件,如Javascript sendFile正在抛出异常无效json?,javascript,angularjs,json,node.js,express,Javascript,Angularjs,Json,Node.js,Express,我正在将文件发送给客户端下载,但当我从文件接收到以下数据时,其抛出的异常json无效,是否有其他方法发送文件,如res.download,并将内容设置为json。我正在寻找更好的方法来发送文件,而不使用angularJs FileSaver。它应该将对话框填充到浏览器中,是否可以使用nodejs实现这一点 app.js app.get('/file', function (req, res) { var dir = './ditLogs'; var root = path.res
res.download
,并将内容设置为json。我正在寻找更好的方法来发送文件,而不使用angularJs FileSaver。它应该将对话框填充到浏览器中,是否可以使用nodejs实现这一点
app.js
app.get('/file', function (req, res) {
var dir = './ditLogs';
var root = path.resolve('./ditLogs');
var fileName = req.query.file_name;
var data;
fs.readdir(dir, function(err, items) {
items.forEach(function(file){
if(fileName === file){
data = file;
console.log('DATA',data);
res.setHeader('Content-Disposition', 'attachment; filename=' + data);
res.setHeader('Content-type', 'text/plain');
res.sendFile(data, {root: root});
}
});
});
});
Factory.js
getFile:function(file_name){
return $http.get("/file?file_name="+file_name);
}
ctrl.js
$scope.downloadFile = function(message){
DitFactory.getFile(message).then(function(response,$window){
var data = JSON.stringify(response.data);
var blob = new Blob([data], { type: 'text/plain;charset=utf-8' });
FileSaver.saveAs(blob, 'text.txt');
console.log(response.data.level);
});
file.txt
{"level":"info","message":"Test Log messages"}
{"level":"info","message":"Test Log messages"}
{"level":"info","message":"Test Log messages"}
您会收到错误,因为该文件确实不是有效的JSON 您需要解析文件并将其转换为数组,或者以纯文本形式发送文件,并将其按原样传递给您的文件保护程序 要分析文件,您可以执行以下操作:
data.split('\n').reduce(function (result, x) {
x = x.trim();
if (x) {
result.push(x);
}
return result;
}, [])
你刚才问了这个问题,我问了那个问题,但我想我需要解释更多的标签应该添加更多的澄清,我问新问题的原因。