代码上的Javascript小胡子无效模板

我正在申请一个应用程序,我已经通过npm安装胡子。

然后在我的main.js文件中,我像这样导入它:

const Mustache = require('mustache') 

然后我有一个这样的HTML模板文件:

在html文件的tile部分中的<title>{{ title }}</title>

使用节点我已经加载了模板文件,并尝试运行渲染。

代码如下:

 fs.readFile('template.html', (err, data) => { var mydata = Mustache.render(data, {title: "sometitle"}); fs.writeFile('result.html', mydata, (err) => { if (err) throw err; console.log('The file has been saved!'); }); }); 

我不断收到这个错误:

TypeError:无效的模板! 模板应该是一个“string”,但“对象”作为胡子#渲染的第一个参数

我怎样才能解决这个问题,我可以改变并保存结果?

正如你可以在这里看到的: 节点doc,如果你不指定编码thenacallback将收到一个原始缓冲区; 如果你想要一个string只需要添加一个编码(假设它是UTF-8文件):

 fs.readFile('template.html', 'utf8', (err, data) => { var mydata = Mustache.render(data, {title: "sometitle"}); fs.writeFile('result.html', mydata, (err) => { if (err) throw err; console.log('The file has been saved!'); }); });