渲染EJS模板抛出错误this.templateText.replace不是函数
问题描述:
我试图呈现来自文件的模板EJS但我得到一个错误this.templateText.replace is not a function
渲染EJS模板抛出错误this.templateText.replace不是函数
const http = require('http');
const fs = require('fs');
const ejs = require('ejs');
const server = http.createServer(function(req, res){
fs.readFile('index.ejs', function(err, data) {
if (err) {
res.end("Error");
}
res.end(ejs.render(data, { title: "Hello" }));
});
});
server.listen(4000);
答
原来,fs.readFile
回报在回调原始缓冲区data
而ejs.redner
期待一个字符串。
如果没有指定编码,然后被返回的原始缓冲液中。
如果你想从fs.readFile
然后一个字符串,你需要通过编码为第二个参数:
fs.readFile('index.ejs', 'utf-8', function(err, data) {
// now data is a string
});