2014-10-20 100 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