当前位置: 首页 > 面试题库 >

与node.js中的fs.createWriteStream关联的事件

艾仲渊
2023-03-14
问题内容

写入流时达到EOF会触发什么事件?我的代码如下。它是根据http://docs.nodejitsu.com/articles/advanced/streams/how-
to-use-fs-create-write-
stream

但是令人惊讶的是,我的“结束”事件从未被解雇。当我检查http://nodejs.org/api/stream.html#stream_event_end时,我看到可写流在’end’上没有任何事件

var x = a1.jpg;
var options1 = {'url': url_of_an_image, 'encoding': null};
var r = request(options1).pipe(fs.createWriteStream('/tmp/imageresize/'+x));

r.on('end', function(){
    console.log('file downloaded to ', '/tmp/imageresize/'+x);
}

如何捕获EOF事件?


问题答案:

当基础资源完成写入时,可读Steam
会发出close事件。

r.on('close', function(){
  console.log('request finished downloading file');
});

但是,如果要赶快fs完成将数据写入光盘的时间,则需要Writeable Stream
finish事件:

var w = fs.createWriteStream('/tmp/imageresize/'+x);

request(options1).pipe(w);

w.on('finish', function(){
  console.log('file downloaded to ', '/tmp/imageresize/'+x);
});


 类似资料:
  • 问题内容: 我试图理解这些术语的含义。我举了一些例子,例如: 汇总:Facebook 有一个 用户 组成:facebook 中的 每个用户 都有一个 会话。 协会:人们 使用 浏览器 但是我对 具有 和 使用我的 示例感到困惑。为什么不能是用户 使用 Facebook帐户或Facebook 使用 会话来认证用户? 就OOP而言,这是错误的吗?我在哪里想念这个概念? 问题答案: 该 使用 关系意味着

  • 关联实体和关联关系属性有什么区别?在我的一本名为《现代数据库管理》(Hoffer,第11版)的书中,作者陈述了两者之间的区别。然而,它并没有真正解释为什么会有差别,相反,它只是给出了它们是如何不同的例子。 据我所知,一个有一个属性关联的关系是一个关联关系属性,并用一条虚线表示一个圆角矩形,该矩形内有该属性。而关联实体是描述关系的多个属性。两者都只能用于ER图解中的多对多关系。我的思维过程正确吗?

  • 我有一个问题,如果我的服务上有一个客户端调用两个方法,它就会失败,因为第二个方法中的事务没有与之关联的会话。但是,如果我将这两种方法组合到服务中,并从客户机代码中调用其中一种方法,它就会成功。 谁能给我解释一下为什么会这样? 考虑下面的代码: 所以这里发生的事情是,在我的客户机代码中(它不知道事务),如果我调用#getChildrenFor(id),我就没事了。但如果我打电话: 然后hiberna

  • 长话短说:我们开发并维护了一个库,可以在使用JavaEE7/CDI/JPA的其他项目中使用。应用程序将在Glassfish-4.0下运行,并使用Hibernate的JPA实现实现底层的PostgreSQL持久性。这是将用Spring/Struts/Hibernate编写的旧应用程序重写到JavaEE7/CDI/JTA新世界的长期迁移工作的一部分。 问题:出于审计目的,我们的库需要在执行用户语句之前

  • 当执行 this.write 报错的时候,catch到错误以后还生成了 filename 这个文件,这里能有什么设置可以让出错的时候不生成文件,我现在只有加上 fs.unlink去手动删除。

  • 问题内容: 在我的脚本中,有必要创建一个哈希表,我在Google中搜索了此表。为此,大多数人都建议使用JavaScript对象。问题是,哈希表中的某些键具有“”。在他们中。我可以使用关联数组轻松创建这些键。 我不明白为什么关联数组不好。在我查看的站点中提到的第一件事是length属性。我来自使用散列的Perl背景。最常见的用途是从键中获取值,检查键是否存在,删除键值对,添加键值对。如果这些是我的常