初步实现Apache功能——根据不同的网络请求路径访问不同的内容
Posted 勇敢*牛牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初步实现Apache功能——根据不同的网络请求路径访问不同的内容相关的知识,希望对你有一定的参考价值。
根据不同的网络请求路径访问不同的内容
- 多个if语句嵌套
// 加载http核心模块
var http = require('http');
// 加载文件模块
var fs = require('fs');
// 创建server
var server = http.createServer();
// 监听server的request的请求事件,设置请求处理函数
server.on('request',function(req,res)
var url = req.url;
var wwwDir = "E:/nodejs/WWW";
if(url==='/')
fs.readFile(wwwDir + '/index.html',function(err,data)
if(err)
return res.end("404 Not Found");
res.end(data);
)
else if(url === '/a.txt')
fs.readFile(wwwDir + '/a.txt',function(err,data)
if(err)
return res.end("404 Not Found");
res.setHeader('Content-Type','text/plain;charset=utf-8');
res.end(data);
)
else if(url === '/index.html')
fs.readFile(wwwDir + '/index.html',function(err,data)
if(err)
return res.end("404 Not Found");
res.end(data);
)
else if(url === '/apple/login.html')
fs.readFile(wwwDir + '/apple/login.html',function(err,data)
if(err)
return res.end("404 Not Found");
res.end(data);
)
else
res.end("404 not found");
)
//绑定端口号然后很nice
server.listen(3000,function()
console.log('running .....');
)
可以看出代码量\\(o)/很大
- 变量代码转路径
// 加载http核心模块
var http = require('http');
// 加载文件模块
var fs = require('fs');
// 创建server
var server = http.createServer();
// 监听server的request的请求事件,设置请求处理函数
server.on('request',function(req,res)
var filePath = '/index.html';
var url = req.url;
var wwwDir = "E:/nodejs/WWW";
if(url!=='/')
filePath = url;
// console.log(filePath,wwwDir+filePath);
fs.readFile(wwwDir+filePath,function(err,data)
if(err)
return res.end("404 Not Found");
res.end(data);
)
)
//绑定端口号然后很nice
server.listen(3000,function()
console.log('running .....');
)
直接根据请求路径来处理访问路径。巧妙的使用if
语句,让代码量和效率大大提高
以上是关于初步实现Apache功能——根据不同的网络请求路径访问不同的内容的主要内容,如果未能解决你的问题,请参考以下文章
20201107第16课,使用Apache服务部署静态网站;使用Vsftpd服务传输文件