Come posso ottenere l'accesso ai dati POST in una richiesta, se l'Express bodyParser
non attiva?Come analizzare la richiesta HTTP con un tipo di contenuto mancante in Express/NodeJs, assumendo un tipo di contenuto predefinito?
var server = express();
server.use(express.bodyParser());
server.post('/api/v1', function(req, resp) {
var body = req.body;
//if request header does not contain 'Content-Type: application/json'
//express bodyParser does not parse the body body is undefined
var out = {
'echo': body
};
resp.contentType('application/json');
resp.send(200, JSON.stringify(out));
});
Nota: in ExpressJs 3.x + req.body
non è disponibile automaticamente, e richiede bodyParser
da attivare.
Se un'intestazione del tipo di contenuto non è impostata, è possibile specificare un tipo di contenuto predefinito di application/json
e attivare lo bodyParser
?
Altrimenti è possibile accedere ai dati POST utilizzando il modo nodo nudo all'interno di questa funzione POST express?
(ad es req.on('data', function...
)
basta usare 'req.on ('data')' oppure fare 'req.headers ['content-type'] = req.headers ['content-type'] || 'application/json'' prima del parser del corpo, ma in realtà questo è un errore del client. –
@ JonathanOng grazie. Sì, lo so che si tratta di un errore del client - solo cercando di aggirare il problema. Come faccio a fare qualcosa prima che il parser del corpo entri in gioco? AFAICT, è già stato attivato dal momento in cui viene inserita questa funzione di richiamata PUT espressa. – bguiz