分析请求URL
引入 url模块 使用url.parse(req.url) 将请求url解析成类似以下结构数据:
{
host: "localhost",
pathname: "/index.html",
query: "?a=xx&b=1&b=2"
}
的对象。
格式化query
引入querystring 使用querystring.parse(query) 将query字符串转化成以下结构:
{
a: "xx",
b: ["1","2"]
}
并将以上的转化结果赋值到req.data属性,备用。
修改handle模块
- handle模块的execute方法参数,增加req和resp
- 修改underscore.template渲染参数,将req和resp分别按照指定名称传入
测试
测试页面使用underscore.each方法增加以下片段:
<fieldset>
<lengend>请求参数</lengend>
<ul>
<%_.each(request.data, function(v,k){
print( '<li>'+k+":"+v+'</li>' )
});%>
</ul>
</fieldset>
地址栏输入http://localhost:8888/example/123.html?a=xx&b=1&b=2
测试访问结果。
PS:
相关完整代码已经发布到了npm仓库中, 可以使用 $npm install http-f2e-server@0.0.6
进行安装或者更新。进入目录后使用 $node http-f2e-server.js
启动服务,并查看Demo。