1

我已经看过并阅读了一些教程,这些教程表明您可以将一个流传输到另一个几乎就像乐高积木一样,但是我找不到任何关于如何在将流通过管道传输到您的对象时捕获管道命令的任何内容。

我的意思是如何创建一个带有函数的对象,这样我就可以做到:

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不是_readthis.data上传功能可以读取的方式存储。

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

4

1 回答 1

-1

如果您想创建自己的可以通过管道传输和/或传输的流,请查看实现流的节点文档

于 2014-04-23T21:46:56.437 回答