注意: 我们每次修改node中的任何代码后,都要重新进行启动。
2.1 获取表单GET方式提交的数据
我们上面的代码中使用的是POST方式,不过这里要先讨论使用GET方式提交过来的数据,我们先不考虑数据的安全性,只是学习如何获取使用get方式提交过来的form表单数据,将post改为get,重新运行。
我们知道,使用get方式提交数据,会将数据作为URL参数传递过来,因此我们通过解析URL中的参数获取到数据,这里就用到了url模块中的方法:
// server.js
var http = require('http'),
url = require('url');http.createServer(function(request, response){
var html = '<html>
<head>
<meta charset=UTF-8" />
</head>
<body>
<form action="/" method="get">
<p>username : <input type="text" name="username" /></p>
<p>password : <input type="password" name="password" /></p>
<p>age : <input type="text" name="age" /></p>
<p><input type="submit" value="submit" name="submit" /></p>
</form>
</body>
</html>';
var query = url.parse( request.url, true ).query;
if( query.submit ){
var data = '<p><a href="/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >back</a></p>'+
'<p>username:'+query.username+'</p>'+
'<p>password:'+query.password+'</p>'+
'<p>age:'+query.age+'</p>';
response.writeHead(200, {'content-type': 'text/html'});
response.write(data);
}else{
response.writeHead(200, {'content-type': 'text/html'});
response.write(html);
}
response.end(); // 结束
}).listen(3000);
console.log('server has started...');
我们再次运行提交后就能在页面中显示出数据了。
url.parse是用来解析URL字符串的,并返回解析后的URL对象。若我们只输出一下
url.parse(request.url) :
url.parse(request.url);result:
Url {
protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: '?username=111113&password=123&age=122&submit=submit',
query: 'username=111113&password=123&age=122&submit=submit',
pathname: '/',
path: '/?username=111113&password=123&age=122&submit=submit',
href: '/?username=111113&password=123&age=122&submit=submit'
}
如果将第2个参数设置为true,则会将返回结果中的query属性解析为一个对象,其他属性不变;默认值为false,即query属性是一个字符串:









