1

我正在使用 Web 技术和“客户端”node.js 创建一个桌面应用程序。通过使用 NWJS,我可以加载节点模块“客户端”。

我想使用节点之类的东西fs.readFile来加载客户端的 .html 文件,然后将其转换为 jQuery 对象,例如,我可以附加到某处。

我知道 jQuery 有它自己的.load()方法,但我想使用 node.js 来加载文件。

编辑:它现在正在根据 rsp 的答案工作

工作代码:

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

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

1 回答 1

1

如果您可以在相同的上下文中使用fs.readFileand jQuery,那么您可以读取文件并使用 jQuery 解析它,如下所示:

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

$('<p>abc</p>')这与使用 jQuery几乎相同。您可以将 HTML 字符串传递给 jQuery 函数,它会返回一个 jQuery 对象。这里唯一的区别是字符串来自文件。

默认情况下,您得到readFile的不是 String 而是Buffer。它是在 ES6 中的 TypedArray 之前添加的,以便能够以良好的性能处理文件和二进制数据流。

要将 Buffer 转换为 String,您可以使用toString可选地采用编码(默认为 UTF-8)、要转换的缓冲区的开始和结束(默认为整个缓冲区)的方法。

有关更多信息,请参阅:

于 2016-11-24T16:38:35.223 回答