2013-08-09 17 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/"); 

ho eseguito i seguenti comandi: riccioNode.js: ricciolo: (52) Risposta vuoto dal server con lo spazio in richiesta non codificato

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 

Si può spiegare il motivo per cui ho ricciolo 52 ?? ?

In questo caso, desidero inviare 500 indietro. Posso farlo?

+0

abbiamo bisogno del resto del codice nodo e della linea di comando di arricciatura. Speriamo che ci sia una ris.senda lì ... – Paul

+0

'app.get ('/ item/id')' significa letteralmente '/ item/id' not'/item/item1' – Paul

+0

Prova l'opzione '-I' curl per spiegazione. (Sulla mia macchina arricciata invia 2 richieste per il comando 'curl http: // google.com/xy': prima su Google Server e la seconda su' y'.) – elmigranto

risposta

1

Anche con lo res.send mancante sembra un problema con il percorso. probabilmente intendevi.

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

Annotare il : prima id. Questo crea una variabile a cui è possibile accedere su req.params.id.

+0

Ho aggiornato il mio post con il codice completo e i dettagli. – GJain

0

Sto avendo questa domanda in mente pure. Immagino che curl preveda l'url già codificato se citato da virgolette. Se trova spazi bianchi in url, lo considererà un URL non valido.

E questo è abbastanza diverso dal comando wget. Se si esegue questo:

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

realtà wget codifica l'url per voi e per la richiesta in realtà sarà trasmesso come:

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

Questo tipo di fatti realmente prendere in giro il nostro cervello.

Problemi correlati