1.nodejs模块
在nodejs需要先建立一个服务器,引入http,url,fs,querystring模块,使用createServer创建服务,并且绑定一个监听端口
var http = require("http");
var url = require("url");
var fs = require("fs");
var querystring = require("querystring");
var app = http.createServer(function(req,res){
}
app.listen(3000)
html发过来的路径是字符串,所以需要把他转化为对象
var url_obj = url.parse("req.url")
根据html页面请求的路径,在nodejs设置不同的路径值,返回相对应的html界面
if(url_obj.pathname === "/login"){
fs.readFile("./login.html","utf-8",function(err,data){
if(!err){
//把读取到的内容返回给浏览器
res.write(data);
res.end();
}
})
}
当整个html页面加载完,我们发现如果有引入css文件,img文件或者js文件,无法完成静态渲染,因为在nodejs中,html如果有别的一些文件也要发送请求才能渲染出来,这样就需要对整个页面的所有文件设置user_obj.pathname了,这样子太过于麻烦,所有我们在nodejs后台封装一个render()请求函数,这样子当一个页面被加载,所有静态资源就都会向后台发送请求完成渲染。
调用render(),传入path参数,要用 “.”+url_pathname 拼串,因为传入的要是一个文件路径值,这个值要给fs的
还有一点是,之前的 if(url_obj,pathname) 判断最后全部要加return,不然会再次进入这个render()函数,会造成错误
render("."+url_obj.pathname,res)
function render(path, res) {
//binary 二进制
fs.readFile(path, "binary",