在浏览器

时间:2015-07-20 23:02:59

标签: javascript node.js npm browserify

我使用browerify在浏览器中使用this包。我创建了一个从服务器下载.fcs文件的phonegap应用程序。我的代码是:

    var reader = new FileReader();

        reader.onloadend = function(e){
            var buffer = this.result;

            var options = {};

            var fcs = new FCS(options, buffer);

        };


    reader.readAsArrayBuffer(file);

问题是缓冲区的类型为ArrayBuffer,但FCS()需要一个缓冲区,它只在节点中可用,所以我会收到一个错误。在节点中,您可以执行以下操作:

var FS = require('fs');
FS.readFile(filename, function(err, databuf) {
       var fcs = new FCS(options, databuf);
});

如何在浏览器中将远程文件读入节点缓冲区?

1 个答案:

答案 0 :(得分:0)

您需要将Buffer模块用于浏览器。例如:https://github.com/feross/buffer

1)Browserify模块:

browserify -r buffer -r fcs -o bundle.js

2)简单测试:

<input type='file' onchange='openFile(event)'>
<script src="bundle.js"></script>
<script>

var Buffer = require('buffer').Buffer;
var FCS = require('fcs');

var openFile = function(event) {
  var input = event.target;
  var reader = new FileReader();

  reader.onload = function(){
    var data = new Buffer( reader.result );
    var fcs = new FCS({}, data);
    console.log(fcs);
  };
  reader.readAsText(input.files[0]);
};

</script>

https://jsfiddle.net/o9qo8e0t/