var _ = require('underscore'); //npm install underscore
var mime = require('mime'); //npm install mime;
var path = require('path');
//创建服务器连接步骤省略
//为res对象添加一个render()函数,方便使用,需要渲染,所以有第二个参数,传的参数是index.html中需要用到的数据
response.render = function(filename,templateData){
fs.readFile(filename,(err,data)=>{
if(err){
response.writeHead(404,'Not Found',{
'Content-Type':'text/html'
});
response.end('404 not Found');
//console.log(request.url);
return;
}
if(templateData){//用户传递了模板数据表示需要替换
var fn = _.template(data.toString('utf-8')); //将读到的数据转为字符串
data =fn(templateData); //进行数据渲染
}
response.setHeader('Content-Type',mime.getType(filename));
response.end(data);
});
};
if(Obj.pathname === '/' || Obj.pathname ==='/index.html' ){
//模板渲染调用实例
response.render(path.join(__dirname,'index.html'),{list:list_news}); //第一个参数是要渲染的html页面,第二个参数是数据值,表示成了js对象。 list 是HTML页面所使用的js对象,名称必须一致。list_news是从其他数据文件取到的json对象,转为了js对象
}else{ //静态文件调用实例 .css .jpeg
response.render(path.join(__dirname,request.url)); //静态文件请求是get方式,所以 request.url == /css/index.css //拼接起来就可以找到 //服务器端请求的静态文件路径是相对当前js文件来说的。所以,例如:当前js文件为index.js 那么同目录下必然有 css文件夹 ,文件夹下必有index.css文件,或者将静态文件放到public下,那么就是 response.render(path.join(__dirname,'public',request.url));
}
node.js 模板渲染 和请求静态对象,不使用 express
猜你喜欢
转载自blog.csdn.net/qq_38340601/article/details/81381576
今日推荐
周排行