使用
request.method.toLowerCase()=='post'判断当前是否有数据提交;在data事件进行数据的拼接,在end事件中进行的处理;
response.end()写在了end事件内部,因为end事件是异步操作,因此必须得数据输出完成之后才能执行
response.end()我们在控制台中可以看出,postData是这样的一个字符串:
'username=123&password=123&age=23&submit=submit';因此我们使用
query.parse将postData解析为对象类型,以便获取提交过来的数据。三、路由
现在我们所有的逻辑都是在根目录下进行的,没有按照url区分,这里我们按照功能进行路由拆分。以上面的post请求为例,我们可以拆分为:页面初始化和form提交后的处理。
页面初始化:
// starter.js 页面初始化function start(request, response){
var html = '<html>
<head>
<meta charset=UTF-8" />
</head>
<body>
<form action="/show" method="post">
<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>';
response.writeHead(200, {"Content-Type":"text/html"});
response.write( html );
response.end();
}
exports.start = start;
展示获取的数据:
// uploader.js 展示获取的数据
var querystring = require('querystring');function upload(request, response){
var postData = '';
request.addListener('data', function(chunk){
postData += chunk;
});
request.addListener('end', function(){
var data = querystring.parse(postData);
console.log( 'postData: '+postData );
console.log(data);
var s = '<p><a href="/" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >back</a></p>'+
'<p>username:'+data.username+'</p>'+
'<p>password:'+data.password+'</p>'+
'<p>age:'+data.age+'</p>';
response.writeHead(200, {'content-type': 'text/html'});
response.write(s);
response.end();
})
}
exports.upload = upload;
然后在server.js中进行路由选择









