我正在尝试使用NodeJS将一些从互联网上获取的数据写入文件,但我得到的只是:
1fef bfbd 0800 0000 0000 0203 efbf bdef
bfbd 63ef bfbd 7061 efbf bd2c efbf bdef
bfbd 6ddb b66d efbf bdef bfbd 7edb b66d
dbb6 6ddb b66d efbf bdef bfbd 7c7b efbf
bdef bfbd 3367 26ef bfbd 46ef bfbd 5f2b
...
我使用的是请求和fs。
request(
{ method: 'GET'
, uri: url
}
, function (error, response, body) {
fs.writeFile(torrentFilePath, body, function(err) {
if(err) {
console.log(err);
} else {
console.log("The file was saved!");
}
});
这是我试图下载的.torrent
文件,所以我猜它可能有一些有趣的角色,这可能是问题所在?或者我错了。
答案 0 :(得分:0)
我认为您需要对缓冲区进行编码,如:
buffer = new Buffer(body, 'base64');
fs.writeFile(torrentFilePath, buffer, function(err) { ... });
答案 1 :(得分:0)
您是否尝试过将缓冲区编码为二进制?
var b = require('bncode');
var dataToWrite = Buffer.from(b.encode(body), 'binary');
答案 2 :(得分:0)
var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
fs.readFile('demofile1.html', function(err, data) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write(data);
res.end();
});
}).listen(8080);