nodejs使用http和fs模块访问静态资源文件
nodejs中访问静态资源文件,百度上大多数资料都是说,是因为node无法判断访问的文件是什么,所以需要一个个的设置contentType。这种方法我感觉有点治标不治本。归根究底还是需要告诉node,需要访问的文件在哪里,然后通过readFile这个方法转化。
好了那现在直接说方法,以及粘贴代码吧!
- 入口文件index.js
let http=require('http');
let fs=require('fs');
http.createServer(function(req,res){
if(req.url === "/test"){
fs.readFile('./test.html',function (err,data) {
res.end(data);
})
}else if(req.url==="/kk"){
/*解释上面为啥指标不治本,像这种情况,res.end里面直接访问图片,返回image/jpg还是text/html呢*/
res.writeHead(200,{"Content-Type":"text/html"});
res.end("<img src='/uploads/aa.jpg'>");
} else if(req.url.startsWith("/uploads")){
let filepath=__dirname+req.url;
fs.readFile(filepath,function (err,data) {
res.end(data);
});
}
}).listen(3000)
- 测试文件test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<img src="/uploads/aa.jpg"/>
</body>
</html>
- 目录文件
- 访问成功
这里只是作为个人笔记记录整理出来,如解释有误,记得留言回复哦!