使用 Cheerio、NodeJs 从文件追加 HTML

append HTML from file with Cheerio, NodeJs

我正在尝试使用 cheerio 将文件中的一些 html 附加到一些现有的 html,但我不断收到错误(错误是由 cheerio 库产生的,因此很难调试)

expo.includeNav = function(html, result)
{
    var file = 'templates/admin_nav.html';

    fs.readFile(file, function(err, nav)
    {
        var $ = cheerio.load(html);
        $('body').append(nav);
        result($.html());

    });

}

它似乎不喜欢将变量传递给追加函数。

如果我将 html 放入而不是从文件中调用,它会工作,如下所示:

$('body').append('<div class="nav"> navigation list here</div>');

但我不希望这样,因为我希望前端开发人员能够编辑 HTML 文件,而不是深入研究我的节点 JS 代码来查找更改 html 的位置。

我已经解决了。我假设其他人可能会 运行 解决这个问题,因为我认为这是一个普遍的需求。所以这就是答案。

您需要指定您希望它作为缓冲区的字符串返回。使用 'utf8'

执行此操作
expo.includeNav = function(html, result)
{
    var file = 'templates/admin_nav.html';

    fs.readFile(file, 'utf8', function(err, nav)
    {
        var $ = cheerio.load(html);
        $('body').append(nav);
        result($.html());

    });

}