文档章节

nodejs中下载文件回调问题

caltrop
 caltrop
发布于 2016/04/14 18:09
字数 270
阅读 83
收藏 5
点赞 1
评论 0
  • 使用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出错崩溃了怎么办?

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

myownghost ⋅ 2014/09/16 ⋅ 4

Node出错导致运行崩溃的解决方案

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

黄欣怡 ⋅ 2017/06/13 ⋅ 0

Node.js中实现文件的循环写入

http://developer.51cto.com/art/201109/290289.htm node.js对所有外部资源调用提供异步机制,文件IO也不例外。在这种异步机制下,进程不会被阻塞,这极大提高了CPU的利用率,为单进程的模式...

壹峰 ⋅ 04/17 ⋅ 0

nodejs开发——mongodb数据库入门

当你还在为开发Nodejs使用哪种数据库而犹豫时,那就选择mongodb吧。在nodejs中操作mongodb非常方便,mongodb天然的支持JSON,增删改查都非常简单。本篇博客主要来实现在nodejs中使用mongodb...

chenyufeng1991 ⋅ 2017/02/02 ⋅ 0

精读《如何利用 Nodejs 监听文件夹》

1 引言 本期精读的文章是:How to Watch for Files Changes in Node.js,探讨如何监听文件的变化。 如果想使用现成的库,推荐 chokidar 或 node-watch,如果想了解实现原理,请往下阅读。 2 ...

黄子毅 ⋅ 06/04 ⋅ 0

jQuery-File-Upload 使用文档(翻译)

最近要用到多图上传,准备使用这个插件,但是没搜到相关的文档,只有官方的文档,主要是以有道翻译和个人理解为主 可能会有一些问题,但是比看原文是方便一些. 使用文档 插件的基本信息 插件demo ...

employeeee ⋅ 05/14 ⋅ 0

深入浅出Node.js(一):什么是Node.js

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

leeldy ⋅ 2012/10/25 ⋅ 1

Node v10.4.0 发布,升级 V8 引擎至 6.7.288.43 版本

Node v10.4.0 已发布,该版本主要是将 V8 引擎升级到了 6.7.288.43 版本,还包括一些改进。 deps: 升级 V8 至 6.7.288.43 版本 (Michaël Zasso) #19989 stream: 确保 Stream.pipeline 在没有...

局长 ⋅ 06/07 ⋅ 0

JS的运行机制(浏览器和node)

一、为什么JS语言是单线程 js的单线程和他的用途有关。作为浏览器脚本语言,js的主要用途就是与用户互动,以及操作DOM、BOM。这决定了它只能是单线程,否则会有很复杂的同步问题。例如:js同...

fenerchen ⋅ 05/29 ⋅ 0

如何使用koa2+es6/7打造高质量Restful API

前言 如今nodejs变得越来越火热,采用nodejs实现前后端分离架构已被多数大公司所采用。 在过去,使用nodejs大家首先想到的是TJ大神写的express.js,而发展到如今,更轻量,性能更好的koa已然...

Jack088 ⋅ 06/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

解决yum安装报错Protected multilib versions

使用yum安装报错Protected multilib versions原因是因为多个库不能共存,不过更新的话也并不行,但是可以在安装命令后面加上如下一段命令: --setopt=protected_multilib=false 案例: 比如需...

北岩 ⋅ 26分钟前 ⋅ 0

为什么要学习Typescript???

简单来说 目前的typescript就是未来的javascript 为什么?? 这要从ECMA-262标准的第4版说起 对了 我们说的ES5 其实是ECMAScript3.1这个替代性建议被扶正了而已... 那么 第4版标准是什么? 看看...

hang1989 ⋅ 30分钟前 ⋅ 0

linux安装ipfs

一、下载ipfs # cd /usr/local/ipfs/ # wget https://dist.ipfs.io/go-ipfs/v0.4.15/go-ipfs_v0.4.15_linux-amd64.tar.gz # tar -zxvf go-ipfs_v0.4.15_linux-amd64.tar.gz 二、安装ipfs # ......

八戒八戒八戒 ⋅ 36分钟前 ⋅ 0

jvm程序执行慢诊断手册

生产环境最多的几种事故之一就是程序执行慢,如果是web服务的话,表现就是响应时间长。本文分享,从业多年形成的排查守则。 诊断步骤 系统资源查看 首先是系统资源查看,而且必须是在第一步。...

xpbob ⋅ 37分钟前 ⋅ 0

YII2 advanced 高级版本项目搭建-添加API应用以及多应用

一、YII安裝 安裝yii可以用composer安裝,也可以在yii中文社区下载归档文件安装 composer安装就不介绍了,因为要安装composer,比较麻烦,当然安装了composer是最好的,以后安装yii的插件要用...

botkenni ⋅ 37分钟前 ⋅ 0

在jdk1.8的环境下模拟永久代内存溢出

相信不少小伙伴在看深入理解Java虚拟机的时候,作者给我们举例一个demo来发生PermGen space 1、通过List不断添加String.intern(); 2、通过设置对应的-XX:PermSize与-XX:MaxPermSize(更快看到...

虾几把写 ⋅ 今天 ⋅ 0

开发OpenDaylight组件的完整流程

在前面介绍学习了OpenDaylight的几个重要模块后,这里再来介绍下完整开发一个模块的过程。 OSGI的bundles提供被其他OSGI组件调用的服务。这个教程中展示的是Data Packet Service去解析数据包...

wangxuwei ⋅ 今天 ⋅ 0

Java序列化和反序列化

1、什么是序列化和反序列化 序列化:把对象转换为字节序列的过程。 反序列化:把字节序列恢复成对象的过程。 2、被序列化的类需要实现serializable接口,只是为了标注该对象是可以被序列化的...

IT-Mamba ⋅ 今天 ⋅ 0

流式构建原理

流式构建需要达到分钟级的数据更新频率,Kylin采用类似于Spark Streaming的做法,每隔数分钟进行一次微构建。这边的构建需要考虑到一个延迟因素,分布式网络存在延迟等因素,该时间段的数据有...

无精疯 ⋅ 今天 ⋅ 0

在maven项目工程编写solr代码,需要的依赖

solrJ <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> <version>6.6.2</version> </dependency> <dependency> <groupId>org.apache.httpcomponents<......

爱运动的小乌龟 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部