//引入模块
var http = require("http");
var fs = require("fs");
var url = require("url");
var queryString = require("querystring");
//创建服务器
var server = http.createServer();
//监听请求
server.on("request",function(request, response){
//获取请求路径
var currentUrl = request.url;
//针对不同路径打开不同页面
if(currentUrl == "/"){
fs.readFile("./index.html", "utf8", function(err, data){
if(err){
response.end("404 Not Found!");
}else{
//解决中文乱码
response.setHeader("Content-Type","text/html;charset=utf-8")
//写入内容
response.write(data);
//结束
response.end();
//修改页面
// response.end(data.toString());
}
})
}else if(currentUrl.indexOf("/getData") === 0){
//处理表单或者接口
if(request.method == "POST"){
//post请求数据可能很大,分片获取
var postData = "";
//数据传输中
request.on("data", function(chunk){
postData += chunk;
});
//数据传输完毕
request.on("end", function(){
paramObj = queryString.parse(postData);
console.log(paramObj);
});
//数据处理
//页面跳转
response.statusCode = 302;
response.setHeader("Location", "/");
response.end();
}else{
//接收get请求中的参数
var paramObj = url.parse(currentUrl, true).query;
console.log(paramObj);
//数据处理
//页面跳转
response.statusCode = 302;
response.setHeader("Location", "/");
response.end();
}
}else if(currentUrl.indexOf("/public") === 0){ //判断是否为请求静态资源,/public为静态资源目录
//响应静态资源文件
fs.readFile("./" + currentUrl, "utf8", function(err, data){
if(err){
response.end("404 Not Found!");
}else{
//注意不同文件的头不同,乱设置头会导致资源不可用
// response.setHeader("Content-Type","text/html;charset=utf-8")
response.write(data);
response.end();
}
})
}else{
fs.readFile("./404.html", "utf8", function(err, data){
if(err){
response.end("404 Not Found!");
}else{
response.end(data.toString());
}
})
}
});
//启动服务
server.listen(8080 ,function(){
console.log("请求了8080端口")
})