2014-07-06 15 views
7

Jestem bardzo nowy w węźle. Znajduję się w punkcie, w którym mam prosty serwer, który powinien po prostu wydrukować zapytanie zapytanie i żądanie body, które to zajmuje. Zrozumiałem, że funkcja "żądanie obsługi" w rzeczywistości nie zwraca obiektu żądania , a raczej obiektu IncomingMessage.Uzyskaj adres URL i treść z IncomingMessage?

Są dwie rzeczy, których nie rozumiem: Jak uzyskać ciąg kwerendyi ciało.

Dostaję tylko ścieżkę, bez zapytania i niezdefiniowane dla ciała.

Kod serwera:

var http = require('http'); 

var server = http.createServer(function (request, response) { 
    console.log("Request query " + request.url); 
    console.log("Request body " + request.body); 
    response.writeHead(200, {"Content-Type": "text/plain"}); 
    response.end("<h1>Hello world!</h1>"); 
}); 

server.listen(8000); 

console.log("Server running at http://127.0.0.1:8000/"); 

Kod zapytania:

var http = require('http'); 

var options = { 
    host: '127.0.0.1', 
    port: 8000, 
    path: '/', 
    query: "argument=narnia", 
    method: 'GET' 
}; 

var req = http.request(options, function(res) { 
    res.setEncoding('utf8'); 
    res.on('data', function (chunk) { 
    console.log('response: ' + chunk); 
    }); 
}); 

req.on('error', function(e) { 
    console.log('problem with request: ' + e.message); 
}); 

req.write("<h1>Hello!</h1>"); 
req.end(); 

Należy pamiętać, że jestem kompletnym nowicjuszem. Nie szukam tylko ekspresowych rozwiązań.

Odpowiedz

4

Powodem, dla którego nie widzisz ciągu zapytania pod numerem request.url jest to, że nie wysyłasz go poprawnie. W swoim kodzie żądania, there is no query property of options. Musisz append your querystring to the path.

path: '/' + '?' + querystring.stringify({argument: 'narnia'}), 

W drugim pytaniu, jeśli chcesz mieć pełną treść żądania, musisz odczytać z obiektu żądania jak strumień.

var server = http.createServer(function (request, response) { 
    request.on('data', function (chunk) { 
    // Do something with `chunk` here 
    }); 
}); 
Powiązane problemy