全局变量 __dirname
全局变量__dirname是一个字符串 ,代表当前运行的js文件所在目录的路径(是当前运行的js文件所在的文件夹的绝对路径)
全局变量 __filename
全局变量 __filename是一个字符串,代表当前运行的js文件的路径(绝对路径)
使用__dirname实现静态网站
let http=require("http");
let fs=require("fs");
let tb=http.createServer((req,res)=>{
console.log(req.url);
if(req.url=="/tb.html"){
res.setHeader("content-Type","text/html;charset=utf8");
fs.readFile("./tb.html",(err,data)=>{
if(!err){
res.end(data);
};
});
}else if(req.url=="/tb.css"){
res.setHeader("content-Type","text/css");
fs.readFile("./tb.css",(err,data)=>{
if(!err){
res.end(data);
};
});
}else if(req.url=="/tbico/undersjx.png"){
res.setHeader("content-Type","image/x-icon");
fs.readFile("./tbico/undersjx.png",(err,data)=>{
if(!err){
res.end(data);
};
});
}else if(req.url=="/tbico/tb.png"){
res.setHeader("content-Type","image/x-icon");
fs.readFile("./tbico/tb.png",(err,data)=>{
if(!err){
res.end(data);
};
});
}else if(req.url=="/favicon.ico"){
res.setHeader("content-Type","image/x-icon");
fs.readFile("./tbico/favicon.ico",(err,data)=>{
if(!err){
res.end(data);
};
});
}else{
res.end("<h1>404 Not Found</h1>");
};
});
tb.listen(8089);
当在客户端用浏览器地址输入网址请求这份html文件时,在解析html文件遇到img的src又会发起请求,如下就是客户端发起请求的网址所返回到后端的结果:
就是客户端需要什么文件我们就返回什么文件,根据所返回的结果我们可以将以上代码简化为
let http = require("http");
let fs = require("fs");
let tb = http.createServer((req, res) => {
console.log(req.url);
fs.readFile(__dirname + req.url, (err, data) => {
if (!err) {
res.end(data);
};
});
});
tb.listen(8089);