文档章节

nodejs中下载文件回调问题

caltrop
 caltrop
发布于 2016/04/14 18:09
字数 270
阅读 93
收藏 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非阻塞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
写给 Node.js 学徒的 7 个建议

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

JayPark不作死
2014/11/05
0
3

没有更多内容

加载失败,请刷新页面

加载更多

AIX 系统 (资源)

AIX--zabbix agent的编译安装以及遇到的“坑” 荐 : http://blog.51cto.com/lythjq/2128354 AIX--操作系统安装(AIX 6.1) : http://blog.51cto.com/lythjq/2128119...

寰宇01
24分钟前
0
0
Spring 转换 model 为 json 时增加属性

缘起 目前的项目中有个需求是在附件对象转换成 json 时增加个 url 属性,以前的方式是在返回附件对象或列表时候做一次统一处理,这次想看看 spring 或者 jackson fasterxml 是否自带类似功能...

郁也风
24分钟前
0
0
10大PHP比特币开源项目

如果你是一个Phper,如果你希望学习区块链,那么本文列出的 10个开源的Php比特币项目,将有助于你了解在自己的应用中 如何加入对比特币的支持。 如果你希望快速掌握使用Php对接比特币钱包的方...

汇智网教程
52分钟前
1
0
springclould feign客户端添加全局参数

用springclould feign作为调用服务的客户端,一般来说参数可以写在feignclient的方法参数里 有时需要所有feign请求都统一添加一些参数,例如token用于鉴权等,可以这样做: 添加一个配置类,...

canneljls
53分钟前
1
0
win32截屏并rgb24转yuv420

//最终f的内存布局为BGRA格式,需要保证buf长度足够(>w*h*4)void ScreenCap(void* buf, int w, int h){ HWND hDesk = GetDesktopWindow(); HDC hScreen = GetDC(hDesk); ......

styleman
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部