关于node.js创建一个本地服务及访问返回设定方法

107 阅读1分钟

const http =require("http");
const fs=require('fs');
const app=http.createServer((req,res)=>{
//当有客户端连接到当前app的时候。会执行的函数,每个链接会执行一次
//我们要做的事情就是在这个函数中去处理用户部分的请求
console.log("有人访问");
//res.write("你好");//res返回内容
//基于http协议,write是写入到缓冲区,并没有实际传输完整个数据
//res.end();//发送一个数据传输标记,告诉客户端数据传输完成
console.log(req.url)//打印访问地址

//------------------------------以下为根据不同的访问地址返回不同的内容
/*
if(req.url==="/"){
    res.setHeader('content-type','text/html;charset=utf-8');
    res.end(fs.readFileSync('./pages/index.html').toString());
}
if(req.url==="/static/css/css.css"){
    res.setHeader('content-type','text/css;charset=utf-8');
    res.end(fs.readFileSync('./pages/static/css/css.css').toString());
}
if(req.url==="/static/images/0c36b11834fa2ce5.jpg"){
    res.setHeader('content-type','image/jpg');
    res.end(fs.readFileSync('./pages/static/images/0c36b11834fa2ce5.jpg'));
}

if(req.url==="/abc"){
    res.setHeader('content-type','text/plain');
    res.end("ABC");
}
if(req.url==="/style" ){
    res.setHeader('content-type','text/html')
    res.end('<style>body{background:red}</style>');
}
if(req.url==="/cdf"){
    res.setHeader('content-type','text/html;charset=utf-8')
    res.end("<h1>node.js</h1>");
}
*/

//------------------------------以上方法过于繁琐,更改如下
/** * 制定一种规则,可以通过这种规则有规律的访问和返回对应的文件资源 *
* 比如 /static 开头的请求我都返回服务器硬盘目录中的某个目录下资源 *
* 我们把这种资源称为:静态资源 *
* 静态资源:
* 如果通过某个url访问,且不改变资源的情况下,返回的内容不变,则称为静态资源
*/
if(req.url.startsWith("/pages")){
let content=fs.readFileSync("."+req.url);
res.end(content);
}

});
app.listen(8888,'0.0.0.0',()=>{
console.log("服务器启动成功")
})