2017-05-11 45 views
2

我正在處理應用程序,並通過npm安裝鬍子。代碼上的Javascript小鬍子無效模板

然後在我main.js文件I進口這樣的:

const Mustache = require('mustache') 

然後我有這樣的HTML模板文件:在HTML文件的分塊部分

<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!'); 

    }); 

}); 

我不斷收到此錯誤:

類型錯誤:無效的模板!模板應該是一個「字符串」,但「對象」被作爲鬍子的第一個參數給出#渲染

我該如何解決這個問題,以便我可以更改並保存結果?

回答

1

正如你在這裏看到的:node doc如果你沒有指定編碼,那麼回調將接收到一個原始緩衝區;如果你想要一個字符串,只需添加一個編碼(讓我們說它是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!'); 
    }); 
}); 
+0

仍然得到同樣的錯誤嘗試你的代碼 – dj2017

+0

您可以驗證「數據」的類型之後? – pinturic