nodejs处理get请求
主要记录下获取get请求里面的参数的问题。
假设有这样一个链接
urlString='hello?name=LiLei&position=general'
要从这个链接里提取出参数name和position的值。这里要用到url模块和querystring模块,所以先准备这两个对象。
var url = require("url"); var querystring = require("querystring");
然后将urlString转化成url对象,并提取参数字符串"name=LiLei&position=general"
var UrlString = url.parse(urlString); //将字符串urlString转化成url对象UrlString var QueryString = UrlString.query;//获取参数字符串,此时QueryString="name=LiLei&position=general"
然后利用querystring.parse()将参数字符串QueryString转化成含有键值对的对象params
var params = querystring.parse(QueryString);
然后用params["name"]、params["position"] (或者params.name、params.position)就能获取参数name、posiotion的值。上面两步也可以综合起来写成
var params = querystring.parse(url.parse(urlString).query);
下面给出个小例子(已省去非关键代码):
var handle = {}; var url = require("url"); var querystring = require("querystring"); handle["/hello"] = hello; function hello(request, response) { /* url.parse将字符串转化成url对象, url.parse().query获取url里面的参数字符串,比如“name=LiLei&position=general”, 再用querystring.parse(query),将“name=LiLei&position=general”转换成键值对组成的对象params,像{name:"LiLei",position:"general"}这样 */ var params = querystring.parse(url.parse(request.url).query); response.writeHead(200, {"Content-Type": "text/html;charset=utf-8"});//添加charset=utf-8以支持中文 response.write("name:" + params.name + "<br/>"); response.write("position:" + params.position + "<br/>"); /*或者也可以像下面这样使用遍历*/ /*for(var param in params){ response.write(param + ":" + params[param] + "<br/>"); }*/ response.end(); } exports.hello = hello;