使用Cheerio,NodeJs从文件中追加HTML

时间:2015-04-13 09:43:41

标签: jquery html node.js append cheerio

我试图将一些html从一个文件附加到一些现有的带有cheerio的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的位置。

1 个答案:

答案 0 :(得分:1)

我已经解决了。我认为其他人可能遇到这个问题,因为我可以看到它是一个普遍需要。所以这就是答案。

您需要指定要将其作为缓冲区的字符串实例返回。使用'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());

    });

}