2013-07-05 4 views
3

я не могу убедить Node.js видеть второй параметр из моего URL:Node.js игнорирует все параметры QueryString кроме первого

http://localhost:8888/cities?tag=123&date=2013-03-30T10:00:28.000%2B02:00 

Я запустить сервер Node.js с помощью следующей команды:

node --debug ./router_rest.js 

у меня есть следующий код в моем файле "router_rest.js":

require("http").createServer(function (req, res) { 
    // For PUT/POST methods, wait until the 
    // complete request body has been read. 
    if (req.method==="POST" || req.method==="PUT") { 
    var body = ""; 
    req.on("data", function(data){ 
     body += data; 
    }) 

    req.on("end", function(){ 
     return routeCall(req, res, body); 
    }) 

    } else { 
    return routeCall(req, res, ""); 
    } 
}).listen(8888); 

Я делаю следующее звонить из командной строки:

curl http://localhost:8888/cities?tag=123&date=2013-03-30T10:00:28.000%2B02:00 

Когда я отладки и изучить параметр «Req» (в анонимной функции выше), свойство URL выглядит как:

/cities?tag=123 

Я ожидал, что URL сообщил не более:

Даже при переключении параметров узел все еще только видит первый.

Почему последний параметр (т.е. дата) был усечен?

ответ

7

Узел в порядке.

Первый амперсанд в вашей команде curl вызывает запуск оболочки в фоновом режиме. Добавьте цитаты вокруг URL-адреса, и он будет работать.

curl "http://localhost:8888/cities?tag=123&date=2013-03-30T10:00:28.000%2B02:00" 
+0

Ах да ... поиск проблемы в совершенно неправильном месте. Спасибо. – gavdotnet

Смежные вопросы