<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. Hadoop学习笔记(1)(转)

    Hadoop学习笔记(1) ——菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序. ...

  2. C# winform 使用DsoFramer 创建 显示office 文档

    使用微软DsoFramer 组件创建,显示office 1. DsoFramer  组件的介绍 dsoframer是微软提供一款开源的用于在线编辑.调用Word. Excel .PowerPoint等 ...

  3. Linux 'XXXXXX' "is not in the sudoers file. This incident will be reported" 解决方法

    添加方法如下: 1.进入root模式su -  注意:su和-之间有空格输入当前用户的密码 2.添加写权限chmod u+w /etc/sudoers 3.将自己加入到sudoers中 gedit / ...

  4. apache隐藏web服务器的版本信息

    curl -I yourdomain.com 能看到什么? Server: Apache xxx PHP xxx XXX xxx 我们不妨看看 curl -I www.google.com 结果如何: ...

  5. memcached自启动

    # # Source function library. . /etc/rc.d/init.d/functions . /etc/sysconfig/network #[ ${NETWORKING} ...

  6. Hadoop 和 Spark 的关系

    Hadoop实质上是一个分布式数据基础设施: 它将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,意味着您不需要购买和维护昂贵的服务器硬件. 同时,Hadoop还会索引和跟踪这些数据 ...

  7. Python——collections模块、time模块、random模块、os模块、sys模块

    1. collections模块 (1)namedtuple # (1)点的坐标 from collections import namedtuple Point = namedtuple('poin ...

  8. DHCP服务器备份、还原、迁移

    备份DHCP服务器 $today = get-date $todayu = get-date -format 'yyyyMMdd' #备份DHCP数据库,用于还原到本地 Backup-DhcpServ ...

  9. TroubleShoot: Fail to deploy Windows UAP to device: 0x80073CFD

    After creating "Blank App(Windows Universal)" targeting Windows Phone 10 in Visual Studio ...

  10. Mono.Cecil 修改目标.NET的IL代码保存时报异常的处理。

    使用Mono.Cecil对目标.NET的DLL程序进行IL修改后保存时报“Failed to resolve assembly: ' xxxxxx, version=xxxxx,Culture=xxx ...