文档章节

nodejs中下载文件回调问题

caltrop
 caltrop
发布于 2016/04/14 18:09
字数 270
阅读 100
收藏 5
  • 使用Request模块下载文件,pipe方法写入文件流,后续对文件计算hash值,出现hash值出错的问题,代码如下:

            request
            .get(aliyunFilePath, {
                headers: {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36'}
            })
            .on('error', function (err) {
                cont(tools.apiErr(err));
            })
            .on('response', function (response) {
                response.on('end', function () {
                    if (response.statusCode === 200) {
                        filePath = localFilePath;
                        cont(null);
                        return;
                    }

                    cont(tools.apiErr('文件下载失败:' + response.statusCode));
                });
            })
            .pipe(fs.createWriteStream(localFilePath));
            
            。。。
            
            var fileMD5 = security.fileMD5(filePath);

    request
    .get(aliyunFilePath, {
        headers: {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36'}
    })
    .on('error', function (err) {
        cont(tools.apiErr(err));
    })
    .on('response', function (response) {
        response.on('end', function () {
            if (response.statusCode !== 200) {
                cont(tools.apiErr('文件下载失败:' + response.statusCode));
            }
        });
    })
    .pipe(fs.createWriteStream(localFilePath))
    .on('finish', function () {
        filePath = localFilePath;
        cont(null);
    });
    
    。。。
    
    var fileMD5 = security.fileMD5(filePath);

  • 写在这里,以作记录。

© 著作权归作者所有

共有 人打赏支持
caltrop
粉丝 2
博文 8
码字总数 5018
作品 0
海淀
高级程序员
私信 提问
深入浅出Node.js(一):什么是Node.js

专栏的第一篇文章《什么是Node.js》尝试从各个角度来阐述Node.js的基本概念、发展历史、优势等,对该领域不熟悉的开发人员可以通过本文了解Node.js的一些基础知识。 从名字说起 有关Node.js...

leeldy
2012/10/25
0
1
深入分析Node.js事件循环与消息队列

多数的网站不需要大量计算,程序花费的时间主要集中在磁盘 I/O 和网络 I/O 上面 SSD读取很快,但和CPU处理指令的速度比起来也不在一个数量级上,而且网络上一个数据包来回的时间更慢: 一个数...

小平果118
08/03
0
0
写给 Node.js 学徒的 7 个建议

一些我更愿意在开始就知道东西利用 Node.js 开发是一个非常有趣,和令人满足的过程, 它有3万多个模块可以选择使用,并且所有的模块可以非常容易的集成入现有的应用之中。 无论如何,对于一些...

JayPark不作死
2014/11/05
0
3
Node.js非阻塞IO和事件循环学习总结

  学习和使用Node.js已经有两个月,使用express结合mongoose写了一个web应用和一套RESTful web api,回过头来看Node.js官网首页对Node.js的介绍:Node.js uses an event-driven, non-block...

LeoG0816
2014/09/14
0
10
拿什么守护你的Node.JS进程: Node出错崩溃了怎么办?

被吐嘈的NodeJS的异常处理 许多人都有这样一种映像,NodeJS比较快; 但是因为其是单线程,所以它不稳定,有点不安全,不适合处理复杂业务; 它比较适合对并发要求比较高,而且简单的业务场景...

myownghost
2014/09/16
9K
4

没有更多内容

加载失败,请刷新页面

加载更多

磁饱和

定义 磁饱和是磁性材料的一种物理特性,指的是导磁材料由于物理结构的限制,所通过的磁通量无法无限增大,从而保持在一定数量的状态。 举例说明 假定有一个电磁铁,通上一个单位电流的时候,...

colinux
31分钟前
1
0
Apache日志不记录访问静态文件,访问日志切割,静态元素过期时间设置

Apache配置不记录访问静态文件的日志 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 vhost原始配置 <VirtualHost *:80> ServerAdmin test@163.com DocumentRoo...

野雪球
今天
3
0
聊聊storm的ICommitterTridentSpout

序 本文主要研究一下storm的ICommitterTridentSpout ICommitterTridentSpout storm-core-1.2.2-sources.jar!/org/apache/storm/trident/spout/ICommitterTridentSpout.java public interface......

go4it
今天
4
0
Ubuntu常用操作

查看端口号 netstat -anp |grep 端口号 查看已使用端口情况 netstat -nultp(此处不用加端口号) netstat -anp |grep 82查看82端口的使用情况 查找被占用的端口: netstat -tln netstat -tl...

hc321
昨天
3
0
网站cdn的静态资源突然访问变的缓慢,问题排查流程

1.首先我查看了一下是否自己的网络问题,通过对比其他资源的访问速度和下载速度,确认不是 2.通过ping 和 tracert 判断cdn域名能否正常访问,(最后回想感觉这一步可以省略,因为每次最终能访...

小海bug
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部