Node.js Nodejs在“新建”时失败<;某物>;`宣言?

Node.js Nodejs在“新建”时失败<;某物>;`宣言?,node.js,jsdom,Node.js,Jsdom,我有一个js函数在客户端运行时非常完美: // [...] (some meta lines here) var converterEngine = function (input) { // BLOB => Binary => Base64 var uInt8Array = new Uint8Array(input), i = uInt8Array.length; var biStr = []; //new Array(i); while

我有一个js函数在客户端运行时非常完美:

// [...] (some meta lines here)
var converterEngine = function (input) { // BLOB => Binary => Base64
    var uInt8Array = new Uint8Array(input),
          i = uInt8Array.length;
    var biStr = []; //new Array(i);
    while (i--) { biStr[i] = String.fromCharCode(uInt8Array[i]);  }
    var base64 = window.btoa(biStr.join(''));
    return base64;
};
// less important but complementary
var getImageBase64 = function (url, callback) {
    // to comment better
    var xhr = new XMLHttpRequest(url), img64;
    xhr.open('GET', url, true); // url is the url of a PNG/JPG image.
    xhr.responseType = 'arraybuffer';
    xhr.callback = callback;
    xhr.onload  = function(){
        img64 = converterEngine(this.response); // convert BLOB to base64
        this.callback(null,img64); // callback : err, data
    };
    xhr.onerror = function(){ callback('B64 ERROR', null); };
    xhr.send();
};
在nodejs端,通过
节点myscript.js
加载和使用代码,例如:

var jsdom = require('jsdom');
var fs    = require('fs');

jsdom.env(
  "<html><body></body></html>",        // CREATE DOM HOOK:
  [ '../js/b64.js' ],                 // ... & offline

  function (err, window) {
   window.getImageBase64("http://bip.bop/img.png", function(err,data){
              //doing more funny stuff here
           })
  }
);

在nodejs中使用
new
有任何限制吗?如何使它同时在客户端和服务器端工作?

Uint8Array
应该可以正常工作,不会出现类型错误。您使用的是哪个Node.js版本?
Node-v:v0.10.33
。我的客户端测试是使用Chromium版本39.0.2171.65 Ubuntu 14.04(64位),这意味着V8 js引擎。这似乎是一个棘手的问题。你对变矩器发动机做过测试吗?检查该函数是否独立工作可能是个好主意。完全相同的函数在Google Chrome中工作良好。那么,在Node上单独测试它怎么样?
file:///data/yug/projects_active/make-modules/js/b64.js:9
    var uInt8Array = new Uint8Array(input),
                     ^
TypeError: Type error
    at converterEngine (file:///data/yug/projects_active/make-modules/js/b64.js:9:22)
    at xhr.onload (file:///data/yug/projects_active/make-modules/js/b64.js:24:17)
    at dispatchEvent (/data/yug/projects_active/make-modules/node_modules/jsdom/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:570:25)
    at setState (/data/yug/projects_active/make-modules/node_modules/jsdom/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:593:14)
    at IncomingMessage.<anonymous> (/data/yug/projects_active/make-modules/node_modules/jsdom/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:427:13)
    at IncomingMessage.emit (events.js:117:20)
    at _stream_readable.js:943:16
    at process._tickCallback (node.js:419:13)