Node fs, url, http 组合小型的服务器 ( 满足html请求, get, post 传值 )
2017-03-16 17:09
423 查看
<script type="text/javascript"> /* * 引入模块 */ var http = require('http'); var url = require('url'); var fs = require('fs'); /* * 获取项目根路径(存放 WEB 项目的根目录) */ var rootPath = global.__dirname + '/Node'; /* * 创建web服务器对象 createServer * http.createServer(callback(){}): 创建服务器 * callback("客户端请求对象", "服务器响应对象"): 响应服务器请求的回调函数 */ var server = http.createServer(function(request, response) { if(request.method.toUpperCase() == 'GET'){ var pathUrl = url.parse(request.url); if(pathUrl.pathname == '/'){ pathUrl.pathname = "/index.html"; } returnHtml(rootPath + pathUrl.pathname, request, response); /* * 获取get传值的方法 * querystring.parse("需要解析的字符串"), NE.JS不支持; */ console.log(returnFlied(pathUrl.query)); } else { /* * 获取 POST 请求 * request.on('data', callback(读取到的数据){}): 读取缓冲区数据的事件 * request.on('end', callback(){}): 打他事件结束后执行的事件 */ var postStr = ''; request.on('data', function(data){ postStr += data; }); request.on('end', function(){ console.log(returnFlied(postStr)); }); } }); /* * 启动服务器的方法 listen ( 服务器响应事件要放在这句代码之前 ) * server.listen("端口号", "ip或域名"): */ server.listen(80, '192.168.3.143'); /* * 根据请求读取文件的方法 */ function returnHtml(path, request, response) { fs.readFile(path, function(err, data){ response.setHeader("content-type", 'text/html'); if(err){ response.end("<h1>404 你访问的页面不存在</h1>"); } else{ response.end(data); } }); } /* * 解析 GET 和 POST 请求的方法 * 自己写的 */ function returnFlied(str){ var json = {}; var atr = str.split('&'); for(var i = 0; i < atr.length; i++){ var keyVal = atr[i].split('='); json[keyVal[0]] = keyVal[1]; } return json; } </script>
相关文章推荐
- 使用HttpURLConnection向服务器发送post和get请求
- 使用HttpURLConnection向服务器发送post和get请求
- HttpURL连接远程服务器Get和Post方式请求并返回数据
- HttpURLConnection 向服务器发送post和get请求 并接收响应
- 使用HttpURLConnection向服务器发送post和get请求
- "Android下使用HttpUrlConntion"进行最简单的get,post请求(包括创建服务器)
- 使用HttpURLConnection向服务器发送post和get请求
- HttpUrlConnection以GET方式和POST方式请求服务器
- IT忍者神龟之使用HttpURLConnection向服务器发送post和get请求
- 使用HttpURLConnection向服务器发送post和get请求(转)
- HttpUrlConnection以GET方式和POST方式请求服务器
- java HttpUrlConnection get和post 模拟请求 调用接口
- Http学习之使用HttpURLConnection发送post和get请求
- Http服务器的交互请求 GET,POST,PUT和DELETE
- asp.net 自定义 Http Post,Get,WebClient ,TcpClient 请求url地址
- C#实现请求服务器,类似于asp下的getHTTPPage(url)功能
- Android_HttpURLConnection_Get和Post请求
- Android中使用Json和Xml与服务器进行通信,使用代码发送Get和Post请求,http请求辅助类
- java发送post和get请求(1)---HttpURLConnection方式
- 赵雅智_HttpURLConnection 的 get请求和post请求