下载JSONARRAY文件Express,节点,Angular
在我正在做的WebApp中,有一些创建的JSONARRAY文件。例如,它们看起来像:
[{attr1:"123",attr2:"456"},{attr1:"abc",attr2:"def"}]
我试图将这些JSONARRAY文件发送给客户端,应完全按照服务器中的服务方式下载它们,不应打开或解析它们。
在Express中,我尝试使用,send
,sendfile
和下载
res.setHeader('Content-Type', 'application/json');
res.setHeader('Content-Disposition', 'attachment; filename=file.json');
res.sendFile(name, function (err) {
if (err) {
console.log('error sending:', name, err);
} else {
console.log('Sent:', name);
}
});
在前端我正在使用文件放宽
this.Service.get(filename).subscribe(
result => {
console.log(result)
let blob = new Blob(result, {type: "application/json"});
saveAs(blob, collectionname+".json");
}
);
,当我打开文件时看起来像这样的客户端:
[object Object][object Object]
但是我console.log()结果,我看到了json对象。
我能做些什么?
我的设置版本: 角CLI:12.0.5 节点:14.16.1 软件包管理器:NPM 7.11.1 角:12.0.5
In a webapp I'm doing, there are jsonarray files that are created. For example, they look like:
[{attr1:"123",attr2:"456"},{attr1:"abc",attr2:"def"}]
I am trying to send these jsonarray files to the client and they should be downloaded exactly as they in the server, they should not be opened or parsed.
In express I have tried using, send
, sendFile
and download
res.setHeader('Content-Type', 'application/json');
res.setHeader('Content-Disposition', 'attachment; filename=file.json');
res.sendFile(name, function (err) {
if (err) {
console.log('error sending:', name, err);
} else {
console.log('Sent:', name);
}
});
in the front end I am using file-saver
this.Service.get(filename).subscribe(
result => {
console.log(result)
let blob = new Blob(result, {type: "application/json"});
saveAs(blob, collectionname+".json");
}
);
and when i open the file in the client it looks like this:
[object Object][object Object]
But then I console.log() the result, I see the json objects.
What can I do?
Versions of my setup:
Angular CLI: 12.0.5
Node: 14.16.1
Package Manager: npm 7.11.1
Angular: 12.0.5
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
BLOB不能将JSON对象作为参数(甚至是JSON对象的数组)。
您可以通过一系列字符串,例如
以获取详细信息。
Blob cannot take json objects as argument (not even array of json objects).
You could pass an array of strings, e.g.
Raed the Blob documentation for details.