用Cheerio,NodeJs从文件中追加HTML

我想从一个文件附加一些HTML到一些现有的加利福尼亚州的HTML,但我不断收到错误(错误是由cheerio库产生的,所以debugging很难)

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()); }); } 

它似乎不喜欢传递一个variables到附加函数中。

如果我把HTML中,而不是从文件调用它的作品,如下所示:

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

但我不希望这样,因为我希望前端开发人员能够编辑HTML文件,而不是挖掘到我的节点JS代码,以find更改HTML的位置。

我已经解决了。 我认为别人可能会遇到这个问题,因为我可以看到这是一个共同的需要。 所以这里是答案。

你需要指定你希望它作为一个缓冲区的string返回。 用'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()); }); }