1

我正在尝试使用 NodeJS 将从 Internet 获得的一些数据写入文件,但我得到的只是:

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  
...  

我用的是request和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我正在尝试下载的文件,所以我想它可能有一些有趣的字符,这可能是问题所在?还是我错了。

4

3 回答 3

0

我认为您需要对缓冲区进行编码,例如:

buffer = new Buffer(body, 'base64');

fs.writeFile(torrentFilePath, buffer, function(err) { ... });

于 2013-10-22T07:39:55.400 回答
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);
于 2018-10-28T16:53:30.340 回答
0

您是否尝试将缓冲区编码为二进制?

var b = require('bncode');
var dataToWrite = Buffer.from(b.encode(body), 'binary');
于 2018-09-20T10:22:56.337 回答