如何使用 Node.js 读取 jQuery 的 HTML 文件
How to read a HTML file for jQuery, using Node.js
我正在使用网络技术和 "client-side" node.js 创建桌面应用程序。通过使用 NWJS,我可以加载节点模块 "client-side".
我想使用节点的 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()));
});
如果您可以在同一上下文中使用 fs.readFile
和 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
}
});
这与用 jQuery 做 $('<p>abc</p>')
几乎一样。您可以将 HTML 字符串传递给 jQuery 函数,它 returns 一个 jQuery 对象。这里唯一的区别是字符串来自文件。
默认情况下,您从 readFile
获得的不是字符串,而是 Buffer。它是在 ES6 中有 TypedArray 之前添加的,以便能够以良好的性能处理文件和二进制数据流。
要将缓冲区转换为字符串,您可以使用 toString
方法,该方法可选择采用编码(默认为 UTF-8)、要转换的缓冲区的开始和结束(默认为整个缓冲区)。
有关详细信息,请参阅:
我正在使用网络技术和 "client-side" node.js 创建桌面应用程序。通过使用 NWJS,我可以加载节点模块 "client-side".
我想使用节点的 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()));
});
如果您可以在同一上下文中使用 fs.readFile
和 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
}
});
这与用 jQuery 做 $('<p>abc</p>')
几乎一样。您可以将 HTML 字符串传递给 jQuery 函数,它 returns 一个 jQuery 对象。这里唯一的区别是字符串来自文件。
默认情况下,您从 readFile
获得的不是字符串,而是 Buffer。它是在 ES6 中有 TypedArray 之前添加的,以便能够以良好的性能处理文件和二进制数据流。
要将缓冲区转换为字符串,您可以使用 toString
方法,该方法可选择采用编码(默认为 UTF-8)、要转换的缓冲区的开始和结束(默认为整个缓冲区)。
有关详细信息,请参阅: