Node.js的,YUI 3 DOM操作...噢,我的!

2010年4月9日,7:30上午DAV玻璃| 開發 | 42評論

以前的文章 :銳3 更新不再在全球範圍內運行。 我提出一些我的調整nodejs的yui3項目的,允許銳3作為一個適當的非全局模塊全面運行。

本週初,我給你在運行偷看Node.js的服務器上。 現在我告訴你,我已經在過去的一周左右。 幾個星期前,我偶然發現了一個GitHub的項目jsdom 利亞因蘇亞@ tmpvar )。 jsdom介紹如下:

[] CommonJS的 DOM實現目的,是獨立於平台和為最小/盡可能輕,同時完全遵守W3C DOM規範。

聽起來很有意思,所以,我分叉的倉庫,開始玩了,看看我能得到它做。 出乎我的意料,它只是工作。 ,因為它是用JavaScript編寫的,很容易開始黑客和增加新的功能。 我能看到的唯一的問題是,它是一個純粹的DOM層,缺乏一些BOM的功能,是最常見的Web應用程序開發所必需的。 所以我設置添加的功能,我需要運行銳3對jsdom。 幾個黑客天之後,我有一個基線jsdom實施,支持幾乎所有銳3的需求。

入門銳3運行與jsdom的

我一開始只包括jsdom和設立的“假”的文檔對象。 在這一點上,我可以載入我們的核心銳3 DOM功能 ,但事件模塊寬恕負載。 這時候我注意到,一些關鍵的BOM抽象人失踪-例如,事件需要一些window對象的一種。 所以我創建了一個“假”的窗口對象,以符合我的“假”的文件,並開始加載的東西。 正如我在前面的文章中說,銳3的模塊系統,更是別出心裁,使這方面的工作要容易得多。

大多數腳本直接訪問的documentwindow YUI的3不這樣做,而是我們有活躍在配置連接到每個YUI的實例文件/窗口的引用。 這些都可以訪問由Y.config.docY.config.win 所有YUI 3個模塊,堅持這種做法(我們強烈建議你在你相同的銳3畫廊模塊或自己的定制組件)。

有些人可能會覺得這是有點過分,但我已經使用這個功能在我早期的編輯工作,為銳3。 我能創造一個YUI實例和它綁定到一個iframe的窗口/筆。 這意味著,我可以選擇和事件的iframe內運行,無需加載該文件內的銳。 在服務器上,這使得更有意義。 您可能需要在同一進程中的幾個文件,但您的YUI的3個實例,只需要知道他們正在使用的文件。

為了支持這項工作,我創建了一個新的YUI 3模塊稱為nodejs-dom 該模塊將包括適當的庫,如果有的話,並成立一個YUI的實例documentwindow參考。 隨著配置,它會創建一個新的對象Browser稱為實例。 由於所有YUI 3模塊使用節點和節點使用Y.config.doc ,你不應該需要做什麼讓YUI的服務器上的代碼工作。 但是,如果你正在使用的舊的JavaScript和需要訪問的documentwindowlocationnavigator對象,他們上的所有可用的Browser對象。 這裡是一個什麼樣的快速Y.Browser對象看起來像:

 {領航員: 
    {的userAgent:“Node.js的(達爾文,U; RV:0.1.33)”
    ,appVersion:0 .1.33'
   平台:“達爾文”
    }
 ,“窗口: 
    {screenTop:0
    ,pageYOffset:0
    ,screenY:0
   導航:[通告]
    ,innerHeight:768
    ,pageXOffset:0
    ,screenLeft:0
    ,screenX:0
    ,innerWidth:1024
    ,長度:1
    scrollY:0
    ,outerHeight:768
    contentWindow:[通告]
   幀:[通告],[長度]:1]
   中,setInterval:[功能]
   名稱:“nodejs”
    ,scrollX:0
    ,文件:“#文檔”
    ,outerWidth:1024
    setTimeout的:{[功能]
   位置:{HREF:'/用戶/ davglass / .node_libraries / browser.js'}
    }
 ,自我:[通告]
 ,文件:[通告]
位置:[通告]
 }

innerHTML的支持

以來innerHTML是不是在DOM 1級規範,它不是在jsdom。 這是對我的要求,所以我需要找到一個解決方案。 我發現了一個GitHub上的項目,稱為節點的HTMLParser,並聲稱它能夠解析HTML,其中包括語法錯誤。 我分叉 ,取得了一些代碼修改,清理的語法和固定的幾個問題。 我建議你使用我的叉子,如果你在家,我知道我的叉子將工作,只要需要,我會繼續保持它。 最終會有人寫解析器基於@ IZSSAX-JS模塊。

讓我們來看看一些代碼

這是一個非常簡單的hello world例子:

銳()。使用(nodejs-DOM','事件','節點',功能(Y){
     VAR;筆= Y.Browser.document的
     document.title ='這是一個測試“;
     I = Y.Node.create(<I>測試此</ I>“);
     i.addClass('富');
     y.one('身體')追加(I);

    格= document.createElement方法(“DIV”);
     div.id ='富';
     div.innerHTML ='<em id="foo">測試</ em>的這個<strong id="bax"> </ STRONG>真棒!“;
    瑭插綋銉(DIV);
    
     FOO = Y.one('#foo'的);
     foo.addClass('酒吧');
     sys.puts(document.outerHTML);
 });

上面的代碼將返回HTML片段:

 <HTML>
   <HEAD>
     <TITLE>,這是一個測試</ TITLE>
   </ HEAD>
   <BODY>
     <I class="foo">測試</ I>
     <div id="foo" class="bar">
       <em id="foo">測試</ em>的這<strong id="bax">真棒!</ STRONG>
     </ DIV>
   </ BODY>
 </ HTML>

是,我認為它是什麼?

這是最常見的問題,我已經收到了這個東西顯示演示時。 答案: 是的 ,這是你認為它是一個完整的文件在服務器上通過書面形式對標準的DOM和BOM API標準的JavaScript渲染 我有在其使用的幾個例子GitHub項目 這些例子包括渲染銳3 Tabviews滑塊重疊 使用3 2項目,我也能夠呈現一個YUI 2 日曆佈局管理器

舉例

我扔了幾個從我的git回購的例子,所以你可以看到他們在行動:

日曆演示旨在顯示使用YUI在服務器上生成的日曆和提供靜態導航到選定的日,月,漸進增強的一個例子。 此實現使用相同的JavaScript生成服務器端認為你會在客戶端上使用純JavaScript呈現。 是故意有沒有客戶端的JavaScript。 想到這,你使用漸進增強,在服務器端呈現一個全功能的DOM不支持JavaScript的功能,向客戶提供作為基準。

第二個示例顯示如何,你可以混合和匹配,什麼是服務器數據和客戶端的數據是什麼。 如果我有一個真正的MVC框架,YUI 3條規定,我可以從我的部件模板語言(DHTML)和頁面模板(靜態HTML)分開我的數據(JSON)的。 這個例子顯示如何使用相同的數據,但訪問它由3個不同的地方只得到你想要的部分。

我希望你看到的權力,在這裡,我看到的,包括未來可能出現的上下文切換和自由,寫的多層次渲染代碼在應用程序的各級支持漸進增強。 享受! @ davglass

共享和擴展: 書籤del.icio.us Digg它! | reddit!

42評論

  1. 完全吹走。 這是一些嚴重的很酷的東西。

    評論由勞倫·史密斯 - 2010年4月9日,

  2. 哇,那你來到這裡:)另外一些有趣的東西,也許libxmljs將HTML解析速度更快,因為它,而不是JS的Ç書面。

    - 2010年4月9日,由黑木風之

  3. 這看起來棒極了! 我必須在今晚仔細一看,看到我能得到什麼nodejs-DOM來處理,這可能開闢模板等不少門。 :D

    評論由斯蒂芬·貝朗格 - 2010年4月9日,

  4. 請向我解釋,現實世界中的用例從JavaScript的服務器端生成HTML。
    為什麼以及何時會變成這樣有用嗎?

    評論由德米特里Snytkine - 2010年4月9日,

  5. _AT_勞倫感謝

    @黑木一直在尋找,但它不是目前的穩定。

    @斯蒂芬真棒,不能等待,看看有什麼人做這個東西。

    評論由DAV玻璃 - 2010年4月9日,

  6. _AT_德米特里Snytkine

    嗯,HTML片段浮現在腦海中。 使用模板語言,加載外部模板文件可以是一個有點多,當你想要做的是,例如,產生一個鏈接。

    它可能承擔的'href'屬性是目前安全,但你可能會或可能不想讓使用“相對','標題','類','身份證',等等。

    使每個選項的模板,通常會需要一大堆的if語句,當你可以很容易地產生一些像jQuery這樣的元素;

    片段= $(“)的attr('href'的,'http://google.com”)的attr('身份證','someid)的toString()。

    它會採取盡可能多的代碼和略多的時間來實現相同的結果,而不使用DOM相互作用至少5次。

    評論由斯蒂芬·貝朗格 - 2010年4月9日,

  7. @德米特里在現實世界中使用此案件是:

    1。 漸進增強。 採取日曆例如,你已經有一個與YUI的功能齊全的日曆,但使其工作在服務器上,你有寫另一個日曆,說PHP,那麼你有2倍的代碼維護。

    2。 相同的語言==更少的代碼。 如果我在服務器上的代碼也可以運行在客戶端上,然後現在我的代碼庫是大幅度較小。

    3。 快掉頭。 現在,在服務器和客戶端上的代碼幾乎是一樣的,我可以花一半的時間建設的東西,因為我不需要建立任何的兩倍。 表單驗證是一個大的。 你有一個需要驗證客戶端的形式,但它需要在服務器上相同的驗證。 為什麼寫兩次在兩個不同的語言時,你可以做一次?

    是否有助於解釋更好一點呢?

    評論由DAV玻璃 - 2010年4月9日,

  8. 斯蒂芬·尼斯評論;)

    評論由DAV玻璃 - 2010年4月9日,

  9. 戴夫和斯蒂芬·感謝你的解釋。
    關於日曆的例子,我不知道如何比較服務器端庫?
    在ASP.NET開發人員可以使用所謂的控制,已經採取照顧客戶端的一部分。
    據我所知,為企業創建自己的解決方案(如與YUI雅虎),但我不知道是否有優勢smaler webfirms優勢。

    請問你再舉一個例子,小企業如何能夠從這個benfit以及?

    感謝和問候

    評論pxlpz - 2010年4月9日,

  10. FYI還有一個純js窗口對象與jsdom @ http://github.com/tmpvar/jswindow

    評論rdzah - 2010年4月9日,

  11. rdzah這是不完整或功能。 使一個完整的窗口對象時,它不是真正的需要,但它似乎有點過分。 我的“假”窗口會做大部分的事情,需要使現有的JS工作;)

    評論由DAV玻璃 - 2010年4月9日,

  12. 戴夫,

    你動搖。 真的。

    但我不得不說,你真的剛剛發布的示例代碼,其中包括兩個獨立的元素具有相同的ID嗎?

    siggy

    評論SiggyTheViking - 2010年4月9日,

  13. 聚苯乙烯

    對不起,我拼錯您的姓名,DAV。

    評論SiggyTheViking - 2010年4月9日,

  14. 好東西......可是...... Aptana的Jaxer黑桃(加無縫E4X的支持),這...

    為什麼不叉Jax​​er github上(現在它是開源的),並得到它的Node.js運行...然後ALLLLLL這東西是免費的(然後)。

    順便說一句:那些不能確保有關“為什麼這是有用的”...為什麼是PHP有用嗎? 相同......確切的...使用情況。 然而,服務器端JS(SSJS)的“值意味著我們可以看到100%的代碼之間的平價跨應用程序邊界開始......如果你不能延伸你的頭腦遠遠不夠看,價值觀,以及...對不起for'ya :)

    這裡的好東西(再次)。

    評論由瑞安Gahl - 4月15日,2010

  15. (種)nevermind ... Jaxer的DOM/BOM/E4X/XHTML是直接派生的SpiderMonkey,Node.js的,而僅是V8(因此還沒有本土的E4X的)。

    還是......訣竅的人應該能拉一噸的寶貴工作的東西了的Jaxer項目,如果即使只是從概念的角度來看。

    SpiderMonkey的/的TraceMonkey移植到V8/node.js背景聲音可行嗎?

    評論由瑞安Gahl - 4月15日,2010

  16. 人,我不是100%感。

    我想這只是一個“Node.js的/這handrolling辦法”與問題。 ,Jaxer / SpiderMonkey的“

    最終Node.js的handrolling傢伙可能奪冠時,有人出版Jaxer的能力相匹配的模塊的集合,但附加價值的Node.js / CommonJS的/ JSGI生態來。

    OK,現在我做。 好東西。

    評論由瑞安Gahl - 4月15日,2010

  17. @ SiggyTheViking -

    其實,(DUP編號)的目的是表明,它的工作原理如預期;)

    評論由DAV玻璃 - 4月19日,2010

  18. 嘿DAV

    另外一個錯誤,還有什麼其他問題,你發現和解決節點的HTMLParser? 如果有更多的,我很樂意接受拉REQ或修補。

    你不介意在最新的節點的HTMLParser看看? 現在是在V1.0 +,支持流,速度比你分叉的版本快約40%,到未來,我一定會支持它,因為它是我的當前項目的核心。

    評論克里斯Winberry - 2010年4月20日,

  19. 如何執行? 你跑過一個基準util的基本測試和相比,它只是隨地吐痰的HTML字符串? 正如與否,這將是在一個高流量的網站可行的好奇。

    評論本- 2010年4月20日,

  20. 本 -

    我沒有做任何正式的基準,因為這是一個概念證明和下一個星期我花了一點點,它;)

    ,但是,我有我的名單上,......

    評論由DAV玻璃 - 2010年4月21日

  21. 真棒真棒真棒的東西! 分叉和克隆現在!

    斯巴達- 2010年4月24日,

  22. 沒有上述工程的例子。 錯誤是:
    502錯誤網關

    特奧多爾- 5月2日,2010

  23. @特奧多爾 -

    他們是現在,我的託管服務提供商重新啟動我的片的主機和節點的進程並沒有拿出機器......

    評論由DAV玻璃 - 5月2日,2010

  24. 您好DAV

    我已經通過這個,但不能得到nodejs-DOM“包在我的應用程序中使用它。

    我有以下情形。

    我有一個簡單的HTML頁面,我已經加入了銳3,在我有一個iframe src到一些其他的HTML頁面的iframe集。 現在,我要添加事件代表團在iframe中顯示的頁面,這樣一來,我能處理的父HTML頁面在iframe中顯示頁面的點擊事件。

    似乎就可以根據您的文章。 請你解釋一下。

    感謝和問候。

    評論Shankha - 5月13日,2010

  25. 謝謝你的評論,“相同的語言==更少的代碼”。 這著實讓點擊我。 我剛剛一直在尋找在Node.js的和看到的jsdom前。 我們不使用YUI(在目前的jQuery)。 所以addingWould的原則同樣適用嗎? 我可以添加節點的HTMLParser和你的假的瀏覽器來得到相同的結果嗎? 可以用一些指針。

    這不僅解決代碼重複的問題,但我想著它測試JS代碼。 一些公司和一般的世界,我們似乎仍然可以應付。

    與性能有關,據我了解,由於正在事件觸發的Node.js不會使它相當快的,或者至少可擴展性?

    評論由菲爾Thpmpson - 6月2日,2010

  26. @ Shankha -

    對不起,我沒有得到一封電子郵件,在您的文章。 此版本不支持在服務器端IFRAMES或事件。

    評論由DAV玻璃 - 6月2日,2010

  27. @菲爾 -

    理論上的jQuery應下JSDom運行節點的HTMLParser包。 我沒有測試它,因為我知道一點關於jQuery一無所知。

    我知道,從一個角度的沙箱點(每個請求的新文件),它可能是難以運行,設計庫的配置文件和窗口本身的一個實例。 這是YUI的3真正的亮點。 每一個新的YUI實例(一)每個請求是它自己的文件和窗口綁定到它,它單獨。 然後,你不必擔心多個請求的混合數據。

    我開始做這項工作的原因之一是在服務器端測試套件增加。 然而,它不會成為一個真正的瀏覽器測試的替代品。

    評論由DAV玻璃 - 6月2日,2010

  28. 感謝您的努力DAV。

    我想這一點,但我得到“ReferenceError:”沒有定義“文件錯誤。 啟用調試,我可以看到,它只是“事件委託debug.js”被載入後發生的。 我試圖運行的例子,以及和他們有同樣的錯誤。

    有什麼建議?

    謝謝

    彼得 - 7月17日,2010

  29. @彼得,您使用的是最新的代碼從GitHub或最新版本嗎? 我只是從GitHub上的最新測試,所有的例子中,仍然工作。

    隨時脫落這篇文章我一張紙條(davglass [在]的Gmail [點]),如果你仍然有問題。

    評論由DAV玻璃 - 7月21日,2010

  30. DAV,

    只是想從Git檢查了這一點。 有幾個路徑已經改變了對外部模塊,這意味著在git的自述完全不起作用。

    我也越來越

    ################################################## #########
    #警告:HTMLParser的節點可能不會被發現。
    已被禁用#Element.innerHTML二傳手支持
    #Element.innerHTML的getter支持仍將正常
    #下載: http://github.com/tautologistics/node-htmlparser
    ################################################## #########

    當運行Ÿ服務器template.js的。
    還注意到,路徑之一是指向一個目錄,它在你的名字有。 不幸的是,我可以不記得它現在究竟在何處。

    道歉,如果有一個更好的地方張貼。 我目前在一個星期天的下午:)剛剛亂搞。

    2010年8月8日,由阿倫·霍利斯-

  31. 阿蘭 - 你應該我的jsdom叉和節點的HTMLParser,因為他們被稱為這個例子。

    評論由DAV玻璃 - 2010年8月10日

  32. @ DAV

    歡呼聲,我不知道你有一個太jsdom叉。 這是browser.js模塊,這弄得我一點點。 現在有兩個獨立的模塊browser.js需要htmltodom和domtohtml。

    browser.js現在,您還可以通過在你想使用的。windowAugmentation調用的HTML解析器。 一旦我做這一切只是工作。

    這是我的Node.js和YUI的第一次經驗,所以我一點慢,比我在工作的事情應該已經。

    我很欣賞你在創建這些樣本的時間,他們幫助我學到了很多。

    再次感謝,

    艾倫

    2010年8月10日,由阿倫·霍利斯-

  33. 我讀這篇文章,並有一個問題:我用這個作為一個無頭的瀏覽器的東西嗎?

    例如代碼波紋管會工作嗎?

    銳()。使用(nodejs-DOM','事件','節點',功能(Y){
    VAR;筆= Y.Browser.document的
    的document.location ='http://www.ajax_application.any';
    sys.puts(document.outerHTML);
    });

    我有一個複雜的應用,我想使用這樣的東西刮。 現在我使用Envjs,但我知道,我會在生產性能下降,我想獲得一個更好的選擇。

    評論由豪爾赫·文圖拉- 2010年12月2日,

  34. 抱歉!
    應該

    window.location的='http://www.ajax_application.any';

    評論由豪爾赫·文圖拉- 2010年12月3日,

  35. @豪爾赫 -

    你可以訪問一個遠程頁面像這樣的內容:
    https://gist.github.com/574000

    然而,你不能保證遠程頁面執行JavaScript,您將沒有訪問該頁面“點擊鏈接”,或與它進行交互。 這將僅僅是本地修改請求的頁面的副本。

    評論由DAV玻璃 - 12月3日,2010

  36. DAV,
    我檢查你的代碼,我認為我可以完成一些零件。 我的目的是為了湊總是相同的應用程序,我不關心圖片,CSS和用戶界面(按鈕,單擊E等),我只需要正確生成DOM結構。

    關於腳本,我可以運行的代碼,後負荷內完成頁面的DOM。 我要實現的方法,使文件撰寫和document.writeln DOM中的變化。

    也許有必要實施window.open和瀏覽器必須有一個窗口列表,因為腳本在運行時會要求新的窗口。

    你有任何建議,使我的生活更輕鬆嗎?

    謝謝你,

    評論由豪爾赫·文圖拉- 2010年12月4日,

  37. DAV

    我運行節點v 0.3.2(例如結合左資產淨值的一切)Express服務器的例子。 第一套“不能調用設置空法”的稱號呼叫失敗。

    我可以運行個人日曆和tabview例子的,但不是DataTable的例子或刮例子。

    我想在任何地方,我得到了YUI對象作為回調參數是其失敗,現在

    任何想法/陷阱? 這是節點0.3問題?

    西貢- 12月20日,2010

  38. 對不起,上面是喑啞的觀察......所有的例子都使用回調參數作為YUI的對象。

    下面是跟踪

    / TNT的DataTable-script.js的
    信息:(YUI):模塊丟失:nodejs-DOM,1
    信息:(YUI):取回裝載機:/ usr/local/lib/node/.npm/yui3-core/2010.11.03/package/build/loader/loader-debug.js
    信息:(獲取):網址:/ usr/local/lib/node/.npm/yui3-core/2010.11.03/package/build/loader/loader-debug.js
    (節點)process.compile“不應使用。 使用要求(VM)。runInThisContext代替。
    信息:(獲取):加載:/ usr/local/lib/node/.npm/yui3-core/2010.11.03/package/build/loader/loader-debug.js
    信息:(YUI):模塊丟失:轉儲,nodejs-DOM,2
    信息:(YUI):使用裝載機
    信息:(裝載機):試圖加載轉儲,/ usr/local/lib/node/.npm/yui3-core/2010.11.03/package/build /
    信息:(獲取):網址:/ usr/local/lib/node/.npm/yui3-core/2010.11.03/package/build/dump/dump-debug.js
    信息:(獲取):加載:/ usr/local/lib/node/.npm/yui3-core/2010.11.03/package/build/dump/dump-debug.js
    信息:(裝載機):試圖加載nodejs-DOM,/ usr/local/lib/node/.npm/yui3-core/2010.11.03/package/build /
    信息:(獲取):網址:/ usr/local/lib/node/.npm/yui3/0.5.17/package/lib/yui3-dom.js
    信息:(獲取):加載:/ usr/local/lib/node/.npm/yui3/0.5.17/package/lib/yui3-dom.js
    信息:(裝載機):裝載機整理:成功,yui_3_2_0_1_12928339018771,YUI基地,YUI日誌,轉儲,nodejs-DOM
    信息:(YUI):將可用的依賴關係:基YUI,YUI日誌,轉儲,nodejs-DOM
    信息:(YUI):使用嵌套的回調:銳基,YUI日誌轉儲,nodejs-DOM
    信息:(YUI):緩存請求:nodejs-DOM
    信息:JSDom測試......
    信息:(裝載機):的未定義模塊:yui2-DataTable的,匹配模式:yui2
    信息:(裝載機):的未定義模塊:yui2的數據源,匹配模式:yui2
    信息:(YUI):模塊丟失:yui2的DataTable中,yui2數據源,2
    信息:(YUI):使用裝載機
    信息:(裝載機):試圖加載yui2的DataTable,/ usr/local/lib/node/.npm/yui3-core/2010.11.03/package/build /
    信息:(獲取):網址: http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-datatable/yui2-datatable-debug.js
    信息:(獲取):加載: http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-datatable/yui2-datatable-debug.js
    信息:(裝載機):試圖加載yui2的數據源,/ usr/local/lib/node/.npm/yui3-core/2010.11.03/package/build /
    信息:(獲取):網址: http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-datasource/yui2-datasource-debug.js
    信息:(獲取):加載: http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-datasource/yui2-datasource-debug.js
    信息:(裝載機):裝載機整理:成功,yui_3_2_0_1_12928339018771,yui2的DataTable,yui2的數據源
    信息:(裝載機):的未定義模塊:yui2雅虎,匹配模式:yui2
    信息:(裝載機):的未定義模塊:yui2-DOM,匹配模式:yui2
    信息:(裝載機):的未定義模塊:yui2事件,匹配模式:yui2
    信息:(裝載機):未定義模塊:yui2皮膚SAM-DataTable的匹配模式:yui2
    信息:(裝載機):的未定義模塊:yui2元素,匹配模式:yui2
    信息:(YUI):模塊丟失:雅虎yui2的,yui2事件,-DOM yui2,yui2皮膚樣品的DataTable,yui2元,5
    信息:(YUI):使用裝載機
    信息:(裝載機):試圖加載yui2皮樣品的DataTable,/ usr/local/lib/node/.npm/yui3-core/2010.11.03/package/build /
    調試:(獲取):Get.css
    調試:(獲取):真正的CSS加載
    信息:(裝載機):試圖加載yui2雅虎,/ usr/local/lib/node/.npm/yui3-core/2010.11.03/package/build /
    信息:(獲取):網址: http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-yahoo/yui2-yahoo-debug.js
    信息:(獲取):加載: http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-yahoo/yui2-yahoo-debug.js
    信息:(裝載機):試圖加載事件yui2,/ usr/local/lib/node/.npm/yui3-core/2010.11.03/package/build /
    信息:(獲取):網址: http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-event/yui2-event-debug.js
    信息:(獲取):加載: http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-event/yui2-event-debug.js
    信息:(裝載機):試圖加載-DOM yui2,/ usr/local/lib/node/.npm/yui3-core/2010.11.03/package/build /
    信息:(獲取):網址: http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-dom/yui2-dom-debug.js
    信息:(獲取):加載: http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-dom/yui2-dom-debug.js
    信息:(裝載機):試圖加載元素yui2,/ usr/local/lib/node/.npm/yui3-core/2010.11.03/package/build /
    信息:(獲取):網址: http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-element/yui2-element-debug.js
    信息:(獲取):加載: http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-element/yui2-element-debug.js
    信息:(裝載機):裝載機整理:成功,yui_3_2_0_1_12928339018771,yui2雅虎,yui2事件,yui2的數據源,-DOM yui2,yui2皮膚樣品的DataTable,yui2元素,yui2的DataTable
    信息:(YUI):嵌套使用回調:yui2的DataTable,yui2的數據源
    信息:(YUI):緩存請求:yui2的DataTable,yui2的數據源
    信息:創建數據源......
    信息:創建DataTable中......
    信息:(獲取):加載: http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-element/yui2-element-debug.js
    錯誤:(nodejsyui3):--------------------
    錯誤:(nodejsyui3):類型錯誤:不能設置#財產頭,其中只有一個getter
    錯誤:(nodejsyui3):[對象的對象] _formatTdEl( http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-datatable/yui2-datatable-debug.js:5480:18 ) 。
    錯誤:(nodejsyui3):[對象的對象] _getTrTemplateEl( http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-datatable/yui2-datatable-debug.js:5448:25 ) 。
    錯誤(nodejsyui3):[對象對象] _addTrEl( http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-datatable/yui2-datatable-debug.js:5519:29 ) 。
    錯誤:(nodejsyui3):[對象的對象。 http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-datatable/yui2-datatable-debug.js:7327:47
    錯誤:(nodejsyui3):在Object.run( http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-datatable/yui2-datatable-debug.js:92:28
    錯誤:(nodejsyui3):[對象的對象] _runRenderChain( http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-datatable/yui2-datatable-debug.js:7269:24 ) 。
    錯誤:(nodejsyui3):[對象的對象]呈現( http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-datatable/yui2-datatable-debug.js:7397:10
    錯誤:(nodejsyui3):[對象的對象。 http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-datatable/yui2-datatable-debug.js:13101:18
    錯誤:(nodejsyui3):在Function.issueCallback( http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-datasource/yui2-datasource-debug.js:389:26
    錯誤(nodejsyui3):[對象對象] handleResponse( http://yui.yahooapis.com/2in3.4/2.8.2/build/yui2-datasource/yui2-datasource-debug.js:1150:8 ) 。
    錯誤:(nodejsyui3):--------------------

    西貢- 12月20日,2010

  39. 我回去安裝殿節點版本之間切換,但跑了早先同樣的錯誤。 這些都是不為我工作的例子:

    scrape.js,刮object.js的TNT的DataTable-script.js的,Y-server.js。

    一貫空setter方法​​或setter方法​​的對象上,沒有一個setter錯誤。

    西貢- 12月20日,2010

  40. @西貢 -

    你可以給他們發電子郵件給我,而不是張貼在這裡,很難閱讀的意見;)

    davglass(上)的Gmail(點)com

    評論由DAV玻璃 - 12月20日,2010

  41. 這是受詛咒的冷靜,我不能等待看到它在運行,但...

    我不能得到運行​​的項目。 調試器告訴我,上線和express.bodyDecoder()35 server.js炸彈沒有被定義。

    我是重度使用者的YUI和少的回報率,並想看看Node.js的和服務器端銳如何能幫助我。 我從來沒有使用過的Node.js之前,所以不知道如果我有版本問題(Node.js的0.5.0預快遞2.0.0beta)。

    皮特

    皮特- 2011年3月6日,

  42. @皮特 -

    如果你想用我的例子,你應該使用節點0.4.2和Express@1.0.7。 快速測試是太新了,我沒有感動我的例子它尚未。

    評論由DAV玻璃 - 2011年3月7日,

很抱歉,評論已被封閉,在這個時候。

主辦雅虎

©2006-2012雅虎公司所有權利保留。 隱私政策 - 服務條款

支持WordPress的關於雅虎 虛擬主機