2013-08-09 4 views
6
var http = require('http'); 

var server = http.createServer(function (request, response) { 
    response.writeHead(200, {"Content-Type": "text/plain"}); 
    response.end("Hello World\n"); 
}); 

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

codiert I folgende curl Befehle ausgeführt:Node.js: curl: (52) Leere Antwort vom Server mit Platz in Anfrage nicht

curl "http://127.0.0.1:8000/" 
Hello World 

// space is not encoded 
curl "http://127.0.0.1:8000/x y" 
curl: (52) Empty reply from server 

curl "http://127.0.0.1:8000/x" 
Hello World 

// space is encoded 
curl "http://127.0.0.1:8000/x%20y" 
Hello World 

Können Sie mir bitte erklären, warum ich die Locke 52 bekommen ?? ?

In diesem Fall möchte ich 500 zurück senden. Kann ich das machen?

+0

Wir brauchen den Rest des Knotenkodes und die Curl-Befehlszeile. Hoffentlich gibt es dort einen res.Send ... – Paul

+0

'app.get ('/ item/id')' bedeutet wörtlich '/ item/id' nicht'/item/item1' – Paul

+0

Probieren Sie '-I' curls Option für Erläuterung. (Auf meiner Maschine curl sendet 2 Anfragen für 'curl http: // google.com/xy' Befehl: erstens zu Google Server und zweitens zu' y'.) – elmigranto

Antwort

1

Auch mit der fehlenden res.send sieht es aus wie ein Problem mit Ihrer Route. hast du wahrscheinlich gemeint.

app.get('/item/:id', function(...) { 
    .. 
}) 

Hinweis der : vor id. Dies erstellt eine Variable, auf die über req.params.id zugegriffen werden kann.

+0

Ich habe meinen Beitrag mit vollem Code und Details aktualisiert. – GJain

0

Ich habe diese Frage auch im Hinterkopf. Ich glaube, curl erwartet bereits codierte URL, wenn durch doppelte Anführungszeichen zitiert. Wenn es Leerzeichen in der URL findet, wird es als ungültige URL betrachtet.

Und das ist ganz anders als wget Befehl. Wenn Sie dies ausführen:

wget "http://127.0.0.1:8000/x y" 

tatsächlich codiert wget die URL für Sie und die Anfrage tatsächlich als gesendet werden:

http://127.0.0.1:8000/x%20y 

Diese Art von Tatsachen wirklich unser Gehirn necken.

Verwandte Themen