主要记录下获取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;
05-07 15:16