在Nodejs中使用art-template模板渲染
第一,在项目中安装art-template模板引擎并引入art-template模块
先在项目中npm install art-template --save
第二,创建http服务器,并监听'request'事件
let http = require('http');
let server = http.createServer();
//监听request请求
server.on('request', (req, res) => {
})
server.listen(9527, () => {
console.log('服务已启动,请通过127.0.0.1:9527进行访问');
})
第三,引入fs可选模块用于读取模板文件
先看下userInfo.html的内容
<p>我的名字是{{ name }}</p>
<p>我今年已经{{ age }}岁了</p>
<p>我是{{ province }}人</p>
<p>我的爱好是:{{each hobby}} {{ $value }} {{/each}}</p>
let fs = require('fs');
fs.readFile('./userInfo.html',(error, data) => {
if(error){
console.log('文件读取错误');
}else{
let myData = data.toString() //toString()是把获取到的二进制数据转为正常字符串
}
})
第四,引入art-template 并渲染编译模板
let template = require('art-template');
template.render(myData, {
name:'张三',
age:28,
province:'上海',
hobby:['唱歌', '跳舞', '扯淡']
})
第五,返回编译后的模板数据
let result = template.render(myData, {
name:'张三',
age:28,
province:'上海',
hobby:['唱歌', '跳舞', '扯淡']
})
console.log(result);
res.writeHead(200, {'Content-Type': 'text/plain;charset=utf-8'}); //设置响应头,防止中文乱码
res.end(result); //返回数据
第六,浏览器中访问服务,接受到编译后的数据
最后来看下完整代码
let http = require('http');
let fs = require('fs');
let template = require('art-template');
let server = http.createServer();
server.on('request', (req, res) => {
fs.readFile('./userInfo.html',(error, data) => {
if(error){
console.log('文件读取错误');
}else{
let myData = data.toString();
let result = template.render(myData, {
name:'张三',
age:28,
province:'上海',
hobby:['唱歌', '跳舞', '扯淡']
});
console.log(result);
res.writeHead(200, {'Content-Type': 'text/plain;charset=utf-8'});
res.end(result);
}
})
});
server.listen(9527, () => {
console.log('服务已启动,请通过127.0.0.1:9527进行访问');
})