node,如何处理/捕获管道

时间:2014-04-23 20:40:34

标签: node.js node.js-stream

我已经看过并阅读了一些教程,声明你可以将一个流管道传输到另一个,就像lego块一样,但是当一个流用管道连接时,我找不到任何关于如何捕获管道命令的内容你的对象。

我的意思是如何使用函数创建一个对象,我可以这样做:

uploadWrapper = function (client, file, callback) {
  upload = function (client,file,callback){
    var file = file
    // this.data = 'undefined'
    stream.Writable.call(this);
    this.end = function () {
        if(typeof this.data !== 'undefined') file.data = this.data
        callback(file.data,200)
    }
    // var path = urlB.host('upload').object('files',file.id).action('content').url
    // // client.upload(path,file,callback)
  }
  util.inherits(upload,stream.Writable)

  upload.prototype._write = function (chunk, encoding, callback) {
    this.data = this.data + chunk.toString('utf8')
    callback()
  }

      return new upload(client,file,callback)
}
exports.upload = uploadWrapper

如何将数据传送到我的对象?

我看过了,但我真的找不到任何相关的东西(也许我还没有看过写作的地方?)。

任何人都可以指出我正确的方向吗?

如果它有助于了解它,我想要做的就是捕获数据流并构建包含二进制编码数据的字符串;它是来自文件流还是来自服务器的请求流(即来自多部分请求的文件中的数据)对象。

编辑:我已更新代码以记录数据

编辑:我已修复它,我现在可以接收管道数据,我不得不将代码放在一个包装器中,该包装器返回实现流的函数。

编辑:现在出现了不同的问题,this.data中的_read并非以上传功能中this.data可以读取的方式存储。

编辑:好的,现在我可以处理回调并捕获数据,我需要弄清楚如何判断数据是否通过管道传输或者它是否被用作正常功能。

1 个答案:

答案 0 :(得分:-1)

如果您想创建自己的流可以通过管道传输和/或传输,请查看节点docs for implementing streams