【发布时间】:2018-03-25 13:25:38
【问题描述】:
我正在开发一个 Electron 应用程序,使用 NodeJS 和 AngularJS 从 Web 服务下载 mp3 文件并将它们保存到特定文件夹。 为此,我使用 AngularJS $http.get() 下载文件并使用 Node File System 将下载的数据保存到文件夹中。
我目前的问题是我无法正确保存文件。数据已下载并创建了一个文件,但它似乎已损坏。换句话说,MP3 不起作用。
这是我正在做的示例代码:
var fs = require("fs");
var path = require("path");
var resquest = $http.get(url, config).then(function(response)
{
var downloadFolder = path.join(app.getAppPath(), '../../downloads/test.mp3');
var filestream = fs.writeFile(downloadFolder, response.data, 'binary');
});
更新:根据@hame-dhib 的建议测试了以下方法:
var request = $http({
method:'GET',
responseType: 'blob', //<---
url:'http://api/',
headers:
{
'Content-Type': 'audio/mpeg', //<---
'Authorization': data.token
}
}).then(function successCallback(response)
{
var downloadFolder = path.join(app.getAppPath(), '../../downloads/test.mp3');
var filestream = fs.writeFile(downloadFolder, response.data, 'binary');
}, function errorCallback(response)
{
console.log(response);
});
问题依然存在。
【问题讨论】:
-
目前还不清楚那里发生了什么。 AngularJS(客户端)如何调用 Node fs(服务器端)?是电子应用程序吗?问题应该清楚地说明问题。至于“仍然存在”,请提供stackoverflow.com/help/mcve
-
@estus 你是对的。我忘了提到它是一个电子应用程序。我已经更新了我的问题。
标签: angularjs node.js electron fs angularjs-http