NWJS fs, url, http 组合小型的服务器 ( 满足html请求, get, post 传值 )
Posted 被遗忘的优雅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NWJS 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>
以上是关于NWJS fs, url, http 组合小型的服务器 ( 满足html请求, get, post 传值 )的主要内容,如果未能解决你的问题,请参考以下文章
用心整理的 献丑啦 一些关于http url qs fs ...模块的方法
node的api使用——URL——get方法——网页爬虫——node事件——path路径——判断文件类型——fs四种异步封装——客户端文件验证发送