摘要
在很多情况下,我们的web服务器都需要接受客户端浏览器传递的参数或者数据。最常见的是get和post请求。
获取get请求的内容
get请求传递的参数在url中,参数部分在?后面。因此可以手动解析后面的内容作为get请求的参数。node.js中url模块中的parse函数提供了这个功能。
一个例子
404_10@ http=require("http" url=require("url" util=require("util"200,{"Content-Type":"text/plain"5544);
启动服务器
浏览器访问
使用parse解析url中的参数
webserver.js核心代码如下:
404_10@ http=require("http" url=require("url" util=require("util"200,{"Content-Type":"text/plain"
params=url.parse(request.url,"my name is "+
response.end();
};
http.createServer(onRequest).listen(</span>5544<span style="color: #000000;">);
console.log(</span>"web server has started."<span style="color: #000000;">);
};
exports.start
route.js代码如下:
404_10@"request the route "+=route;
user.js代码如下
404_10@ server=require("./webserver" router=require("./router"
启动webserver
浏览器浏览
post请求
post请求的内容全部在请求体中,http.ServerRequest并没有一个属性内容为请求体,原因是等待请求体传输可能是一件耗时的工作。
比如上传文件,而很多时候我们可能并不需要理会请求体内容,恶意的post请求会大大消耗服务器资源,所以node.js默认是不会解析请求体的,当你需要的时候,需要手动来做。
一个例子
404_10@ http=require("http" url=require("url" util=require("util" querystring=require("querystring"
post=''函数,每当接受到请求的数据,就累加到post变量中
request.on("data",+=然后想客户端返回。
request.on("end",=200,"my name is "+
response.end();
};
http.createServer(onRequest).listen(</span>5544<span style="color: #000000;">);
console.log(</span>"web server has started."<span style="color: #000000;">);
};
exports.start