根据不同的网络请求路径访问不同的内容
- 多个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
语句,让代码量和效率大大提高