嘿家伙我正在玩node.js并尝试渲染模板文件.我想出了如何呈现字符串:
var http = require('http');
var ejs = require('ejs');
var server = http.createServer(function(req, res){
res.end(ejs.render('Hello World'));
});
server.listen(3000);
Run Code Online (Sandbox Code Playgroud)
如何渲染模板文件?
ksl*_*oan 37
在ejs中有一个未记录的函数来渲染文件,你可以做...
ejs.renderFile(__dirname + '/template.ejs', function(err, data) {
console.log(err || data)
})
Run Code Online (Sandbox Code Playgroud)
Ama*_*dan 23
var templateString = null;
var fs = require('fs');
var templateString = fs.readFileSync('template.ejs', 'utf-8');
Run Code Online (Sandbox Code Playgroud)
然后你做你的事情:
var server = http.createServer(function(req, res){
res.end(ejs.render(templateString));
});
Run Code Online (Sandbox Code Playgroud)
您所要做的就是将文件编译为字符串(带有可选的局部变量),如下所示:
var fs = require('fs'), ejs = require('ejs'), http = require('http'),
server, filePath;
filePath = __dirname + '/sample.html'; // this is from your current directory
fs.readFile(filePath, 'utf-8', function(error, content) {
if (error) { throw error); }
// start the server once you have the content of the file
http.createServer(function(req, res) {
// render the file using some local params
res.end(ejs.render(content, {
users: [
{ name: 'tj' },
{ name: 'mape' },
{ name: 'guillermo' }
]
});
});
});
Run Code Online (Sandbox Code Playgroud)