2016-11-24 74 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