2014-10-20 102 views
0

基本操作时出现问题。 jsdom.jsdom在createWindow上返回500个错误。createWindow上的jsdom 500错误

示例代码:

var getaPage=function (req, res, callback) { 
    jsdom.defaultDocumentFeatures={ 
     FetchExternalResources  : ['script'], 
     ProcessExternalResources : ['script'], 
     MutationEvents    : '2.0', 
     QuerySelector    : false 
    }; 

    //This is someone's sample, my real code is more complex, but this shows the error 
    var htmlDoc = '<html lang="en-US">' + 
     '<head>' + 
     '<title>Test document</title>' + 
     '<script>' + 
      'var testVar = true;' + 
     '</script>' + 
     '<script src=\'http://code.jquery.com/jquery-latest.js\'></script>' + 
     '<script>' + 
     '</script>' + 
     '</head>' + 
     '<body id="mainPage">' + 
     '</body>' + 
     '</html>'; 

    var tstDocument=jsdom.jsdom(htmlDoc); 

    var tstWindow=tstDocument.createWindow(); 
    //yeah, I am just trhowing this out for the moment 

    var contents=[{label:'a label', value:'a value'}]; 
    //real values after I get this thing working 
    callback(contents); 
}; 

我得到一个500错误(在控制台的NodeJS *)如果我有给createWindow线。如果我将其注释掉,代码将运行至完成状态,并将“内容”返回给调用应用程序。 (Ajax调用这个函数只是得到一个“.fail”状态的‘内部服务器错误’)

* GET /样品/ getaPage 500 112ms - 1.49kb

的其他信息。当我追问了tstDocument对象,我没有看到“createWindow”方法。为什么jsdom会创建一个没有“createWindow”方法的对象?

我错过了什么?

+0

你得到一个500错误,但它是如何显示的?这是一个例外?某处有踪迹吗? (使用此信息更新您的问题。) – Louis 2014-10-21 09:21:23

+0

500位于nodeJS控制台上。 – 2014-10-21 14:40:59

回答

0

好的,找到我的解决方案。 jsDom中不再存在createWindow。等价函数在defaultView属性中提供。如果弃用比单纯放弃该方法更清洁,本来会很好。

+0

http://stackoverflow.com/questions/26492552/jsdom-jsdom-missing-a-createwindow-method – jedierikb 2015-06-15 14:17:05