2016-11-24 71 views
1

我使用的網絡技術和「客戶端」創建一個桌面應用程序node.js中通過使用NWJS,我可以加載節點模塊「客戶端」。如何閱讀jQuery的HTML文件,瞭解如何使用Node.js

我想使用像節點的fs.readFile這樣的東西來加載客戶端.html文件,然後把它變成一個jQuery對象,我可以,例如,附加到某處。

我知道jQuery有它自己的​​- 方法,但我想用node.js的加載文件。

編輯:這是工作,現在基礎上,答案由RSP

工作代碼:

fs.readFile('./views/main.html', function (err, html) 
{ 
    if (err) 
    { 
     throw err; 
    }  

    $('#toolview').empty().append($(html.toString())); 
}); 
+0

難道[我的回答如下(http://stackoverflow.com/questions/40790466/how-to-read- a-html-file-for-jquery-using-node-js/40791277#40791277)對你有幫助嗎?任何意見? – rsp

回答

1

如果你可以在同一個環境中使用fs.readFilejQuery然後就可以讀取文件和使用類似這樣的jQuery解析它:

fs.readFile('/path/to/file', function (err, html) { 
    if (err) { 
    // handle error 
    } else { 
    var $html = $(html.toString()); 
    // now $html is a jQuery object 
    } 
}); 

這幾乎是相同的如果你用jQuery做$('<p>abc</p>')。您可以將HTML字符串傳遞給jQuery函數,並返回一個jQuery對象。這裏唯一的區別是字符串來自文件。

你從readFile得到默認情況下是不是一個String,而是Buffer。它是在ES6中有TypedArray之前添加的,以便能夠處理具有良好性能的二進制數據文件和流。

要將緩衝區轉換爲字符串,您可以使用toString方法,該方法可選擇使用編碼(默認爲UTF-8),轉換緩衝區的起始和結束(默認情況下爲整個緩衝區)。

欲瞭解更多信息,請參閱:

+0

對不起,我還沒有時間來嘗試一下呢。我會盡快回復 - 是的。這看起來很有希望。我感到困惑一點,因爲當我剛console.logged的HTML,它給了我一個巨大的昏迷「流陣」的ReadFile的,但可能的ToString是關鍵! – Piwwoli

+0

是的,你的答案和預期一樣!如果你有時間,你能提供一個解釋,爲什麼我可以調用toString()的文件流結果(?)以及它的工作原理? – Piwwoli