zoukankan      html  css  js  c++  java
  • node.js写服务器

    // 引入内置模块

    var
    http = require("http"); var fs = require("fs"); var url = require("url"); var path = require('path'); var querystring = require("querystring"); var server = http.createServer(); server.on("request",function(req,res){ //url路由转换 var urlObj = url.parse(req.url,true); console.log(req.url) //路径名 var pathname = urlObj.pathname; console.log(pathname); //路径携带的参数 var query = urlObj.query; // var extname = path.extname(req.url); // console.log(extname); // console.log(pathname); //静态伺服 if(pathname == "/register.html" && req.method == "GET"){ console.log("1111"); fs.readFile("./register.html","utf8",function(err,data){ res.end(data); }) } else if(pathname == "/jquery-1.11.3.min.js" && req.method == "GET"){ fs.readFile("./jquery-1.11.3.min.js","utf8",function(err,data){ res.end(data); }) } else if(pathname == "/login.html" && req.method == "GET"){ fs.readFile("./login.html","utf8",function(err,data){ res.end(data); }) } else if(pathname == "/shouye.html" && req.method == "GET"){ fs.readFile("./shouye.html","utf8",function(err,data){ res.end(data); }) } //注册用户名失焦验证 else if(pathname == "/register_blur" && req.method == "GET"){ fs.readFile("./login.json","utf8",function(err,data){ //将文件中存在的用户以json字符串格式转化成json对象 data = JSON.parse(data); var flag = true; for(var i = 0;i<data.length;i++){ //判断文件中是否存在注册的用户名,一旦找到一个存在的uname则停止寻找,返回结果 if(data[i].uname == query.uname){ flag = false; break; } } if(flag){ res.end("1") }else{ res.end("0") } }) } //登录时用户名失焦验证 else if(pathname == "/login_blur" && req.method == "GET"){ fs.readFile("./login.json","utf8",function(err,data){ //将文件中存在的用户以json字符串格式转化成json对象 data = JSON.parse(data); var flag = true; for(var i = 0;i<data.length;i++){ //判断文件中是否存在注册的用户名,一旦找到一个存在的uname则停止寻找,返回结果 if(data[i].uname == query.uname){ flag = false; break; } } if(flag){ res.end("1") }else{ res.end("0") } }) } //登录验证 else if(pathname == "/login" && req.method == "POST"){ var pathData = ""; req.on("data", function(chunk){ pathData += chunk; // console.log(pathData) }) req.on("end",function(){ var pathObj = querystring.parse(pathData); console.log(pathObj); if(pathObj.uname && pathObj.upassword){ fs.readFile("./login.json","utf8",function(err,data){ data = JSON.parse(data); var flag = false; for(var i = 0; i < data.length; i++){ if(data[i].uname == pathObj.uname && data[i].upassword == pathObj.upassword){ flag = true; break; } } if(flag){ //成功 res.end("1"); }else{ //用户名或密码错误 res.end("2"); } }) }else{ //参数错误 res.end("0"); } }) } //注册验证 else if(pathname == "/register" && req.method == "POST"){ var pathData = ""; req.on("data", function(chunk){ pathData += chunk; // console.log(pathData) }) req.on("end",function(){ var pathObj = querystring.parse(pathData); // console.log(pathObj); if(pathObj.uname && pathObj.upassword){ fs.readFile("./login.json","utf8",function(err,data){ data = JSON.parse(data); data.push(pathObj); var data_str = JSON.stringify(data); fs.writeFile("./login.json",data_str,"utf8",function(err){ res.end("1") }) }) }else{ //参数错误 res.end("0"); } }) } //首页获取数据 else if(pathname == "/index_getdata" && req.method == "GET"){ var uname = query.uname; fs.access('./data/' + uname + ".json",function(err){ if(err){ fs.writeFile('./data/' + uname + ".json",'[]',function(err){ fs.readFile('./data/' + uname + ".json",'utf8',function(err,data){ var queryData = "{'message':'OK','data':" + data + '}' res.end(queryData); }) }) }else{ fs.readFile('./data/' + uname + ".json","utf8",function(err,data){ var queryData = "{'message':'OK','data':" + data + '}' res.end(queryData); }) } }) } //添加数据 else if(pathname == "/add_data" && req.method == "POST"){ var pathData = ''; req.on('data', function(chunk){ pathData += chunk; }); req.on('end', function(){ var pathObj = querystring.parse(pathData); var uname = pathObj.uname; fs.readFile('./data/' + uname + ".json",'utf8',function(err,data){ var data = JSON.parse(data); if(data.length == 0){ var obj = { pid : 0, name: pathObj.name, sex : pathObj.sex, age : pathObj.age, mail : pathObj.mail, phone : pathObj.phone } data.push(obj); var str = JSON.stringify(data); fs.writeFile('./data/' + uname + ".json",str,function(err){ res.end('1'); }) }else{ var obj = { pid : data[data.length-1].pid + 1, name: pathObj.name, sex : pathObj.sex, age : pathObj.age, mail : pathObj.mail, phone : pathObj.phone } data.push(obj); var str = JSON.stringify(data); fs.writeFile('./data/' + uname + ".json",str,function(err){ res.end('1'); }) } }) }); } //删除数据 else if(pathname == "/remove_data" && req.method == "GET"){ var uname = query.uname; var pid = query.pid; fs.readFile('./data/' + uname + ".json",'utf8',function(err,data){ var data = JSON.parse(data); for(var i = 0;i < data.length;i++){ if(data[i].pid == pid){ break; } } data.splice(i,1); var str = JSON.stringify(data) fs.writeFile('./data/' + uname + ".json",str,function(err){ res.end("1"); }) }) } //修改数据 else if(pathname == "/modify_data" && req.method == "POST"){ var pathData = ''; req.on('data', function(chunk){ pathData += chunk; }); req.on('end', function(){ var pathObj = querystring.parse(pathData); var uname = pathObj.uname; var pid = pathObj.pid; fs.readFile('./data/' + uname + ".json",'utf8',function(err,data){ var data = JSON.parse(data); for(var i = 0;i < data.length;i++){ if(data[i].pid == pid){ break; } } if(pathObj.name){ data[i].name = pathObj.name } if(pathObj.sex){ data[i].sex = pathObj.sex } if(pathObj.age){ data[i].age = pathObj.age } if(pathObj.mail){ data[i].mail = pathObj.mail } if(pathObj.phone){ data[i].phone = pathObj.phone } var str = JSON.stringify(data); fs.writeFile('./data/' + uname + ".json",str,function(err){ res.end("1"); }) }) }) } }) server.listen(3808); console.log("服务器3808正在运行")
  • 相关阅读:
    RHEL6 kernel bug在hadoop上的测试
    Mapreduce报错:Split metadata size exceeded 10000000
    HDFS超租约异常总结(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException)
    zookeeper ACL使用
    通过Hadoop jmx收集Namenode,Jobtracker相关信息
    FFmpeg + nginx+asp.net实现网络摄像头RTSP视频流WEB端在线播放功能
    JQ+asp.net实现文件上传的断点续传功能
    freemaker模板引擎使用详解
    nginx配置详解
    MySQL数据库分页查询,Oracle数据库分页查询,SqlServer数据库分页
  • 原文地址:https://www.cnblogs.com/masteryin/p/10477783.html
Copyright © 2011-2022 走看看