Javascript Node.js filestreams的部分下载问题:写入约400字节的100 kB图像文件,然后继续操作,没有任何错误
在尝试学习使用节点文件流时,我编写了一些测试应用程序,从远程服务器获取图像并将其保存到磁盘。问题是,虽然一些测试图像下载得很好,但另一些却以奇怪的方式失败,没有返回错误,只写入400到460字节的100+kB图像。在这里,您可以看到nautilus在左侧显示成功下载,而在右侧显示失败的部分下载,从未抛出任何错误。部分下载总是在400到460字节的范围内 下面是我用于测试的示例代码;有些图像下载得很好,有些图像下载了一部分,但没有出现错误:Javascript Node.js filestreams的部分下载问题:写入约400字节的100 kB图像文件,然后继续操作,没有任何错误,javascript,node.js,Javascript,Node.js,在尝试学习使用节点文件流时,我编写了一些测试应用程序,从远程服务器获取图像并将其保存到磁盘。问题是,虽然一些测试图像下载得很好,但另一些却以奇怪的方式失败,没有返回错误,只写入400到460字节的100+kB图像。在这里,您可以看到nautilus在左侧显示成功下载,而在右侧显示失败的部分下载,从未抛出任何错误。部分下载总是在400到460字节的范围内 下面是我用于测试的示例代码;有些图像下载得很好,有些图像下载了一部分,但没有出现错误: var express = require(
var
express = require( 'express' )
, app = express.createServer()
, request = require( 'request' )
, fs = require( 'fs' )
, url = 'http://static.designspiration.net/data/assets/012311-010912AM_158289.jpg';
app.get( '/', function( req, res){
request( url, function( err ){
if( err ){ console.log( err ); }
}).pipe( fs.createWriteStream( './Downloads/testimage.jpg' ) );
});
app.listen( 8083 );
有人知道发生了什么事吗?失败的文件是一致的还是随机的?我三次检查了几个文件,结果都失败了。这就是为什么我在示例中加入了一个静态URL;这是一直给我带来麻烦的其中一个。啊,好吧,这就是为什么我问:P你的示例代码在我的机器上运行得很好。。。我建议通过直接将管道调用替换为绑定“data”来进行调试,然后查看发出了多少数据。至少你会知道是请求还是文件方面的事情不起作用。缩略图仍然没有显示,因此似乎缺少一些字节;图像打开良好。但“部分下载”之谜在其他图片中仍在继续。“直接绑定‘数据’,然后查看有多少数据被释放。”-我对这一点不太熟悉,但我会尝试将
管道
方法替换为一种可以从较低的层次了解事情如何工作的方法。谢谢你的提示。