<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>

Node fs, url, http 组合小型的服务器 ( 满足html请求, get, post 传值 )的更多相关文章

  1. Node学习(二) --使用http和fs模块实现一个简单的服务器

    1.创建一个www目录,存储静态文件1.html.1.jpg. * html文件内容如下: 12345678910111213 <html lang="en">< ...

  2. [转]用Node.js创建自签名的HTTPS服务器

    用Node.js创建自签名的HTTPS服务器 创建自己的CA机构 创建服务器端证书 创建客户端证书 将证书打包 创建自己的CA机构 为CA生成私钥 openssl genrsa -out ca-key ...

  3. node.js中使用http模块创建服务器和客户端

    node.js中的 http 模块提供了创建服务器和客户端的方法,http 全称是超文本传输协议,基于 tcp 之上,属于应用层协议. 一.创建http服务器 const http = require ...

  4. 小型Http服务器

    HTTP又叫做超文本传输协议,现如今用的最多的版本是1.1版本.HTTP有如下的特点: 支持客户/服务器模式(C/S或B/S) 简单快速:基于请求和响应,请求只需传送请求方法和请求路径 灵活:HTTP ...

  5. Node.js创建自签名的HTTPS服务器

    https://cnodejs.org/topic/54745ac22804a0997d38b32d  用Node.js创建自签名的HTTPS服务器  发布于 4 年前  作者 eeandrew  6 ...

  6. node.js url模块

    URL url.parse(urlStr[, parseQueryString][, slashesDenoteHost]) url.format(urlObj) url.resolve(from, ...

  7. cookie是指web浏览器存储的少量数据,该数据会在每次请求一个相关的URL时自动传到服务器中(转)

    基本概念:cookie是指web浏览器存储的少量数据,该数据会在每次请求一个相关的URL时自动传到服务器中. 以博客园为例,我们看看cookie有哪些属性: 1.Name:cookie的名称: 2.V ...

  8. Node.js_express_浏览器存储技术 Cookie(服务器将少量数据交于浏览器存储管理)

    浏览器存储技术 Cookie 服务器将少量数据交于浏览器存储管理 解决 http 无状态协议的问题(无法区分多次请求是否发送自同一客户端) 一个网页一般最多 20个的 cookie,每个 cookie ...

  9. 前端使用node.js的http-server开启一个本地服务器

    前端使用node.js的http-server开启一个本地服务器 在写前端页面中,经常会在浏览器运行HTML页面,从本地文件夹中直接打开的一般都是file协议,当代码中存在http或https的链接时 ...

随机推荐

  1. 转 oracle 学习- 用户权限角色

    创建和删除用户是Oracle用户管理中的常见操作,但这其中隐含了Oracle数据库系统的系统权限与对象权限方面的知识.掌握还Oracle用户的授权操作和原理,可以有效提升我们的工作效率. Oracle ...

  2. C语言面试题5

    C语言面试宝典 第一部分:基本概念及其它问答题 1.关键字static的作用是什么? 这个简单的问题很少有人能回答完全.在C语言中,关键字static有三个明显的作用: 1). 在函数体,一个被声明为 ...

  3. 投行的码工 Dead-end job

    发信人: icestonesy (无忧), 信区: Quant 标  题: 投行的码工怎么样? 发信站: BBS 未名空间站 (Sat May 16 23:25:00 2015, 美东) 最近看到不少 ...

  4. 【转】Linux的五个查找命令:find,locate,whereis,which,type

    原文网址:http://www.ruanyifeng.com/blog/2009/10/5_ways_to_search_for_files_using_the_terminal.html 最近,我在 ...

  5. FormData 知识点

    通过FormData对象可以组装一组用 XMLHttpRequest发送请求的键/值对.它可以更灵活方便的发送表单数据,因此可以独立于表单使用. 如果你把表单的编码类型设置为multipart/for ...

  6. JUC集合之 ConcurrentSkipListSet

    ConcurrentSkipListSet介绍 ConcurrentSkipListSet是线程安全的有序的集合,适用于高并发的场景. ConcurrentSkipListSet和TreeSet,它们 ...

  7. POJ1006——中国剩余定理

    题目:http://poj.org/problem?id=1006 中国剩余定理:x= m/mj + bj + aj 讲解:http://www.cnblogs.com/MashiroSky/p/59 ...

  8. Vue 介绍

    1. 条件 效果图. 如果seen为false,文字将消失 2. 循环 script里定义数据 效果 3. 事件处理 效果如下图, hello world被逆转了

  9. bzoj3871: [Neerc2013 C]Cactus Automorphisms || 3899: 仙人掌树的同构

    Description 给定一个N,N<=50 000个节点的仙人掌,其是指每条边最多在一个环中的无向图,求仙人掌有多少种自同构.自同构是指得是图的顶点集合V到V的变换M, 以P1^a1*P2^ ...

  10. JavaScript之图片操作4

    本次要实现的效果是,在一个盒子里面有一张长图,只显示了一部分,为方便用户浏览,当鼠标移入时,图片开始滚动,将盒子分成上下两部分,当鼠标移入上部分时,图片向上滚动,当鼠标移入下部分时,图片向下滚动. 为 ...