我尝试从文件中呈现EJS模板但我收到错误this.templateText.replace is not a function
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);
答案 0 :(得分:13)
事实证明fs.readFile
在回调data
中返回原始缓冲区,而ejs.redner
期待字符串。
如果未指定编码,则返回原始缓冲区。
如果您想从fs.readFile
获取字符串,则需要将编码作为第二个参数传递:
fs.readFile('index.ejs', 'utf-8', function(err, data) {
// now data is a string
});