Node fs, url, http 组合小型的服务器 ( 满足html请求, get, post 传值 )
<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 传值 )的更多相关文章
- Node学习(二) --使用http和fs模块实现一个简单的服务器
1.创建一个www目录,存储静态文件1.html.1.jpg. * html文件内容如下: 12345678910111213 <html lang="en">< ...
- [转]用Node.js创建自签名的HTTPS服务器
用Node.js创建自签名的HTTPS服务器 创建自己的CA机构 创建服务器端证书 创建客户端证书 将证书打包 创建自己的CA机构 为CA生成私钥 openssl genrsa -out ca-key ...
- node.js中使用http模块创建服务器和客户端
node.js中的 http 模块提供了创建服务器和客户端的方法,http 全称是超文本传输协议,基于 tcp 之上,属于应用层协议. 一.创建http服务器 const http = require ...
- 小型Http服务器
HTTP又叫做超文本传输协议,现如今用的最多的版本是1.1版本.HTTP有如下的特点: 支持客户/服务器模式(C/S或B/S) 简单快速:基于请求和响应,请求只需传送请求方法和请求路径 灵活:HTTP ...
- Node.js创建自签名的HTTPS服务器
https://cnodejs.org/topic/54745ac22804a0997d38b32d 用Node.js创建自签名的HTTPS服务器 发布于 4 年前 作者 eeandrew 6 ...
- node.js url模块
URL url.parse(urlStr[, parseQueryString][, slashesDenoteHost]) url.format(urlObj) url.resolve(from, ...
- cookie是指web浏览器存储的少量数据,该数据会在每次请求一个相关的URL时自动传到服务器中(转)
基本概念:cookie是指web浏览器存储的少量数据,该数据会在每次请求一个相关的URL时自动传到服务器中. 以博客园为例,我们看看cookie有哪些属性: 1.Name:cookie的名称: 2.V ...
- Node.js_express_浏览器存储技术 Cookie(服务器将少量数据交于浏览器存储管理)
浏览器存储技术 Cookie 服务器将少量数据交于浏览器存储管理 解决 http 无状态协议的问题(无法区分多次请求是否发送自同一客户端) 一个网页一般最多 20个的 cookie,每个 cookie ...
- 前端使用node.js的http-server开启一个本地服务器
前端使用node.js的http-server开启一个本地服务器 在写前端页面中,经常会在浏览器运行HTML页面,从本地文件夹中直接打开的一般都是file协议,当代码中存在http或https的链接时 ...
随机推荐
- DD_belatedPNG解决IE6下PNG不透明问题
使用方法: 首先下载JS文件:http://dillerdesign.com/experiment/DD_belatedPNG/ 之后在页面中引用代码: <!--[if IE 6]>< ...
- 防范SQL注入漏洞攻击
原理:通过拼sql语句,在输入框里输入' ; SHOW TABLES;注入这样的代码, 防范:你把全部的特殊符号都过滤掉(如单引号,双引号),自然就不会被注入 使用mysql_real_escape_ ...
- Tomcat 去除项目名称
再tomcat的conf下server.xml 里, 再<host>...</host>的标签之间添加 <Context path="" docBa ...
- CSS Grid布局入门
相信大家都比较熟悉flex布局了,最近有空研究了波grid布局,感觉虽然兼容性还不是太高,应用不是太普遍,但是功能非常强大.未来应该是grid+flex为主流,grid是二维布局,很灵活,适合整体构架 ...
- 大数据挖掘算法篇之K-Means实例
一.引言 K-Means算法是聚类算法中,应用最为广泛的一种.本文基于欧几里得距离公式:d = sqrt((x1-x2)^+(y1-y2)^)计算二维向量间的距离,作为聚类划分的依据,输入数据为二维数 ...
- 【ActiveMQ入门-8】ActiveMQ学习-与Spring集成
概述: 下面将介绍如何在Spring下集成ActiveMQ. 消费者:同步接收: 目的地:topic 环境: 主要包括4个文件: HelloSender.java: JMSTest.java: Pro ...
- mysqldump备份脚本---待完善
1. 建立备份文件存放目录:/backup/mysql 2. 编写备份脚本: # vim ~/bak.sh ## 写入如下内容: #! /bin/bash DB1_NAME="db1&quo ...
- ecliplse java log4j 配置
log4j的一些配置 a). 新建JavaProject>>新建package>>新建Java类: b). import jar包(一个就够),这里我用的是log4j-1.2. ...
- 1070 Mooncake (25 分)
1070 Mooncake (25 分) Mooncake is a Chinese bakery product traditionally eaten during the Mid-Autumn ...
- 1061 Dating (20 分)
1061 Dating (20 分) Sherlock Holmes received a note with some strange strings: Let's date! 3485djDkxh ...