我试图将一些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的位置。
答案 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());
});
}