简述
在java web开发的基础上开始学习nodejs还是比较有把握的,虽然今天的东西相对来说速度稍微的快了些,但还是能够接受的。
要处理浏览器的请求,第一点是要让服务器能够被页面所访问,也就是建立一个有端口监听的服务器,这一点在昨天的文章中,已经做了较为详细的解释。在引入了 http的模块的基础上,相对来说是很简单的,不用像java那样去配置tomcat
const http = require('http');
var server = http.createServer(function(req,res)
创建服务器的内容如上
今天的重点在于两种提交表单方式的参数获取
Get方式参数获取
代码如下
const urllib = require('url');
//get数据
var obj = urllib.parse(req.url,true);
//参数给一个链接 就可以解析出所有的键值对,参数true可以解析query
var url = obj.pathname;
const get = obj.query;
在以上代码中obj获取的是一系列的键值对,如果用java的思想来解释的话,可以理解为一个request封装而成的Map也就是说,可以通过obj获取想要的参数
Post方式参数获取
同样的先粘代码
var str = '';//用一个空字符串准备接收参数串
req.on('data',function(data){//.on可以理解为监听器
//data事件 只要有一段数据到达就会发生一次
//数据量大的话,数据会被切割为多个部分,分别发送
str+=data;
})
req.on('end',function(){
//end事件 数据完整到达触发一次
var post = querystring.parse(str);
var name = post.name;//获取特定参数
//可理解为request.getparamter("name")
console.log(str);
console.log(post);
console.log(name);
})
两种参数提交方式的参数获取如上,下边粘出今天最后一个服务器实例的完整代码
服务器实例完整代码
const http = require('http');
const querystring = require('querystring');
const urllib = require('url');
const fs = require('fs');
var server = http.createServer(function(req,res){
//get数据
var obj = urllib.parse(req.url,true);
var url = obj.pathname;
const get = obj.query;
//post
var str = '';
req.on('data',function(data){
str+=data;
})
req.on('end',function(){
var post = querystring.parse(str);
console.log(str);
})
//文件请求
var file_name = './Day_04/www'+url;
fs.readFile(file_name,function(err,data){
console.log(err);
if (err) {
res.write('404');
}else {
res.write(data);
}
res.end();
});
});
server.listen(8080);